티스토리 뷰
[ML Andrew Ng] C2-Advanced Learning Algorithms 강의 (W1-2) Neural Netowork Intuition
Life4AI 2024. 9. 11. 17:16Neural Network Model - Neural network layer
현대 신경망의 기본 구성 요소는 뉴런 계층(a layer of neurons)이다. 이번 설명에서는 뉴런 계층이 어떻게 작동하는지 단계별로 살펴보겠다. 이를 통해 신경망이 어떻게 계산을 수행하는지 이해하게 된다.
다음은 수요 예측 문제에서 사용되는 신경망의 예시이다.
이 신경망은 4개의 입력 특성을 받아들인 후 3개의 뉴런으로 구성된 은닉 계층을 통과하여, 최종적으로 1개의 뉴런이 있는 출력 계층으로 예측값을 보낸다.
먼저 은닉 계층을 확장해 그 계산 과정을 살펴보자.
이 은닉 계층에는 세 개의 뉴런이 있으며, 각 뉴런은 네 개의 입력 값(특성)을 받는다. 이 세 개의 뉴런은 각각 로지스틱 회귀 함수를 구현하며, 간단한 계산을 수행한다.
첫 번째 뉴런의 계산
이 뉴런은 \(w_{1}\)와 \(b_{1}\)라는 두 개의 매개변수를 사용하며, 뉴런의 활성화 값 \(a_{1}\)을 출력한다. 예를 들어, 첫 번째 뉴런의 활성화 값 \(a_{1}\)은 0.3이 될 수 있다. 이는 첫 번째 특성이 특정 상품이 저렴할 확률을 나타낸다.
두 번째 뉴런의 계산
이 뉴런은 \(w_{2}\)와 \(b_{2}\)라는 두 개의 매개변수를 사용하며, 뉴런의 활성화 값 \(a_{2}\)을 출력한다. 예를 들어, 첫 번째 뉴런의 활성화 값 \(a_{2}\)은 0.7이 될 수 있다. 이는 사용자가 이 상품을 인지할 가능성을 나타낸다.
세 번째 뉴런의 계산
이 뉴런은 \(w_{3}\)와 \(b_{3}\)라는 두 개의 매개변수를 사용하며, 뉴런의 활성화 값 \(a_{3}\)을 출력한다. 예를 들어, 첫 번째 뉴런의 활성화 값 \(a_{3}\)은 0.2이 될 수 있다.
이 세 개의 뉴런은 각각 0.3, 0.7, 0.2라는 활성화 값을 출력하며, 이 값들은 활성화 벡터 a=[0.3,0.7,0.2]로 묶인다. 그럼 이 벡터는 출력 계층으로 전달되어 최종 예측을 위한 입력으로 사용된다.
그리고, 신경망을 여러 계층으로 구성할 때, 각 계층을 구분하는 표기법을 사용하는 것이 중요하다.
입력 계층은 layer 0, 첫 번째 은닉 계층은 layer 1, 두 번째 은닉 계층은 layer 2 등으로 구분한다. 따라서, 각 계층을 표기할 때, 위 첨자 대괄호를 사용하여 계층 번호를 나타낸다.
예를 들어, \(a^{[1]}\)은 layer 1의 활성화 벡터를 의미하며, 동시에 다음 layer의 input을 의한다. 그리고 \(w_{1}^{[1]}\)은 layer 1의 neuron 1의 가중치를 의미한다.
이제 출력 계층이기도 한 이 신경망의 layer 2의 계산을 확대해 보자.
출력 계층(layer 2)의 입력 값은 계층 1의 출력값인 \(a^{[1]}\), 즉 0.3, 0.7, 0.2로 이루어진 벡터이다.
출력 계층에는 뉴런이 하나뿐이므로 이 첫 번째이자 유일한 뉴런의 출력값인 \(a^{[2]}\)은 로지스틱 회귀를 통해 계산되며, 스칼라(scalar) 값으로 예를 들어 0.84와 같은 값이 된다.
신경망의 최종 출력인 \(a^{[2]}\)는 이 예제에서 0.84로 계산되며, 이는 베스트셀러가 될 확률을 의미한다.
이 출력값 \(a^{[2]}\)에 임계값(일반적으로 0.5)을 적용하여 이진 예측을 할 수 있다.
만약 출력값이 0.5 이상이면 1로 예측하고, 0.5 미만이면 0으로 예측한다. 이 방법을 통해 "베스트셀러가 될까요? 네/아니오"와 같은 질문에 대한 답을 얻을 수 있다.
이로써 우리는 신경망 계층에 대해서 알아보았고, 각 계층은 숫자로 구성된 벡터를 입력값으로 받아서 다시 숫자로 구성된 또 다른 벡터를 출력하는 방법에 대해 배웠다.
Neural Network Model - More complex neural networks
이번에는 더 복잡한 신경망을 구축하는 방법을 보자.
다음 네트워크에는 input layer을 제외하고 4개의 layer가 있다. layer 1 , 2, 3은 은닉 계층(hidden layer)이고 layer 4는 출력 계층(output layer)이고 layer 0은 입력 계층(input layer)이다.
입력 계층(layer 0)은 신경망의 실제 계산 과정에는 포함되지 않으며, 신경망의 층을 셀 때는 은닉 계층과 출력 계층만 고려합니다. 따라서, 이 신경망은 4개의 계층(3개의 은닉 계층 + 1개의 출력 계층)으로 구성됩니다.
세 번째 은닉 계층(layer 3)의 계산 과정을 확대하여 보자.
layer 3은 이전 계층(layer 2)의 출력값인 벡터 \(a^{[2]}\)를 입력으로 받고, 또 다른 벡터 \(a^{[3]}\)를 출력한다.
layer 3에는 3개의 뉴런이 있다. 각 뉴런에는 고유한 가중치 벡터 \(w_{1}^{[3]}\),\(w_{2}^{[3]}\),\(w_{3}^{[3]}\) 와 편향 \(b_{1}^{[3]}\),\(b_{2}^{[3]}\),\(b_{3}^{[3]}\)이 있다. layer 3의 출력은 \(a_{1}^{[3]}\),\(a_{2}^{[3]}\),\(a_{3}^{[3]}\) 로 구성된 벡터 \(a^{[3]}\)로, 이 벡터는 출력 계층으로 전달된다.
신경망의 활성화 값을 계산하는 일반적인 수식? 표기법을 정리하자.
위의 일반화된 식처럼, 계층 \(l\)에서 neuron unit \(j\)의 활성화 값 \(a_{j}^{[l]}\)은 시그모이드 함수 \(g\)에 의해 계산된다.
Neural Network Model - Inference: making predicitions (forward propagation)
지금까지 배운 내용을 통합하여 신경망이 추론하거나 예측을 수행하는 방법을 살펴보겠다.
예시로 손으로 쓴 숫자 이미지를 0과 1로 구분하는 이진 분류 문제를 사용해 설명하겠다.
입력 데이터로 8x8 픽셀 이미지를 사용하고, 각 픽셀은 0(검정)에서 255(흰색) 사이의 값으로 표현된다. 따라서 입력 벡터 \(X\)는 64개의 특징을 가진다.
이 64개의 입력 특징을 고려하여 두 개의 숨겨진 계층(hidden layer)이 있는 신경망을 사용하겠다. 첫 번째 은닉 레이어에는 25개의 뉴런 또는 25개의 unit이 있다. 두 번째 은닉 레이어에는 15개의 뉴런 또는 15개의 유닛이 있습니다. 마지막으로 출력 레이어나 출력 유닛이 나오는데 1과 0이 될 확률은 얼마나 될까?
신경망에서 수행하는 계산 과정은 다음과 같다.
입력 벡터 \(X\)를 받아 첫 번째 은닉 계층의 활성화 값 \(a^{[1]}\)를 계산한다. 첫 번째 은닉 계층에는 25개의 뉴런이 있으므로, 이 단계에서 25개의 활성화 값 \(a^{[1]}\)이 생성된다.
첫 번째 은닉 계층의 출력 \(a^{[1]}\)을 입력으로 받아 두 번째 은닉 계층의 활성화 값 \(a^{[2]}\)를 계산한다. 두 번째 은닉 계층에는 15개의 뉴런이 있으므로, 이 단계에서 15개의 활성화 값 \(a^{[2]}\)가 생성된다.
두 번째 은닉 계층의 출력 \(a^{[2]}\)을 입력으로 받아 최종 출력 계층의 활성화 값 \(a^{[3]}\) 를 계산한다.
출력 계층에는 1개의 뉴런이 있으므로, 이 단계에서 스칼라 값 \(a^{[3]}\)이 생성된다.
\(a^{[3]}\)의 값이 0.5보다 크면 숫자 1로 분류하고, 그렇지 않으면 숫자 0으로 분류한다.
Practice quiz - Neural network model
'Coursera 강의 > Machine learning Specialization' 카테고리의 다른 글
- Total
- Today
- Yesterday
- Sort
- numpy 배열 속성
- 11870
- Andrew Ng
- sorted
- 파이썬
- 강의노트 정리
- 비용함수
- **
- numpy 배열 생성
- NumPy
- *args
- **kwargs
- omp: error #15
- 로지스틱 회귀
- python
- 딥러닝
- policy function
- computation graph
- 앤드류응
- 경사하강법
- 강화학습
- state value function
- *
- action value function
- adrew ng 머신러닝 강의
- 백준
- 손실함수
- baekjoon
- 숏코딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |