-
Neural Network Layer | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 1. 27. 09:49
현대 ML분야에서 대부분의 Neural Networks들은 뉴런 Layers들로 구성되어 있다. 그렇다면 이 계층을 어떻게 구성하면 좋을까? 이 계층 구성하는 방법을 이용해서 구성하고 나면, 이 모든것을 취합해서 대규모 신경망을 형성할 수 있다. Neural Network가 어떻게 작동하는지 알아보자.
아래와 같은 뉴런 네트워크가 있다고 가정해보자.
Coursera Machine Learning Specialization > Supervised Machine Learning: Advanced Learning Algorithms > Neural Network Intuition 1개의 layer가 있는 네트워크이고, 그 layer에서 나온 결과값을 출력하는 구조이다. 가운데 3개의 뉴런이 있는 "은닉 레이어(hidden layer)"를 살펴보자. 어떻게 계산이 될까? 만약, x(input)의 값이 아래와 같다고 가정해보자.
[197, 184, 136, 214]
각각의 뉴런에서는 예전에 배웠던 logistic function 을 이용해서 계산하게 된다. 즉
z = w1 ⋅ x + b
위의 값이 z가 된다. 이는 dot product 인데, x 가 벡터이기 때문에, 모든 값을 w와 곱한 후, b를 더하게 된다. 이 값을 sigmoid 함수에 대입하면, 해당 노드에서의 결과값이 나오게 된다.
예시에서는 각 노드별로 아래와 같은 결과가 나왔다.
0.3 0.7 0.2
이렇게 결과값이 벡터 형식으로 계산되어 다음 layer에 전달되게 되는것이다. 보통 input이 들어오는 레이어를 layer 0, 첫번째 레이어를 layer 1, 그리고 위 예제에서 결과값으로 받은 레이어는 layer 2가 된다.
마지막 레이어의 노드에서는 위에서 받은 사이즈 3의 벡터를 이용해서, 같은 방식으로 Logistic Rregression으로 계산을 하게된다.
여기서 대괄호를 보면 숫자가 적혀있다. 이는 계층의 숫자를 의미한다. 이전 layer는 노드 3개의 layer 1이었다. 즉, [0.3, 0.7, 0.2] 라는 인풋은 a^[1] 으로 표기되는데, 1층 레이에서 온 아웃풋(현재 계층에게는 인풋)이라고 할 수 있다. 그래서 마지막 값으로 나온 0.84는, a^[2] 라고 표기할 수 있다. 이제 여기서 나온 숫자, 0.84를 가지고, 만약 이 문제가 classification을 위한 모델이라면, 이것이 true 인지 false인지 yes or no로 판단할 수 있다. 아래 예시의 threshold(임계값)은 0.5이다.
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글
Inference: making predictions | Advanced Learning Algorithm (0) 2024.02.03 More Complex Neural Networks | Advanced Learning Algorithm (1) 2024.01.27 Recognizing Images | Advanced Learning Algorithm (0) 2023.11.14 Demand Prediction | Advanced Learning Algorithm (1) 2023.11.14 Neurons and the brain (뉴런과 뇌) | Advanced Learning Algorithms (0) 2023.11.13