-
Forward Propagation in a Single Layer | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 9. 19:49
만약, TensorFlow나 PyTorch를 사용하지 않고, Forward Propagation을 Python에서 처음부터 구연해야한다면 어떻게 해야할까? 그 라이브러리보다 더 나은 Framework를 생각해 낸다면? 결국 이러한 것들을 처음부터 구현해야 할 수 도 있다. Coffee Rosting Model을 예시로 살펴보자.
layer마다 각 뉴런에는 weight과 bias값이 있다. 각 뉴런은 아래와 같은 연산이 일어난다.
그렇다면 이 연산을 python으로 구현하면 어떻게 할까? 첫번째 레이어의 첫번째 뉴런을 계산해보자. 이미 w 값들과 b 값들은 초기화 되었고, 그 값들을 사용했다고 가정한다.
# Input data가 1D Array라고 가정한다. x = np.array([200, 17]) # a1^[1], w1_1 뉴런값을 계산해보자. w1_1 = np.array([1, 2]) b1_1 = np.array([-1]) z1_1 = np.dot(w1_1, x) + b1_1 a1_1 = sigmoid(z1_1)
다른 두 노드들도 마찬가지이다. 수식은 비슷하지만 다른 weight과 bias를 갖고 Activation Funciton, sigmoid 함수를 적용한다.
# a2^[1] w1_2 = np.array([-3, 4]) b1_2 = np.array([1]) z1_2 = np.dot(w1_2, x) + b1_2 a1_2 = sigmoid(z1_2) # a3^[1] w1_3 = np.array([5, -6]) b1_3 = np.array([2]) z1_3 = np.dot(w1_3, x) + b1_3 a1_3 = sigmoid(z1_3)
이제, 마지막 Layer에서는 1개의 뉴런이 있고, 아래와 같은 연산이 필요하다. 또 이것을 python 코드로 표현해보자.
w2_1 = np.array([-7, 8, 9]) b2_1 = np.array([3]) z2_1 = np.dot(w2_1, a1) + b2_1
이제, z2_1 값을 이용해서 threshold와 비교해서 결정을 하게 된다. TensorFlow에 구현된 모든것은 이렇게 한땀한땀 코드들이 동작하고 있는것이라는것을 알 수 있는 대목이다. 우연히 된것 같지만, 엄청난 노력이 있었기에 Machine이 Learning을 하는 결과가 나왔다. 그런 의미에서 헤이즈의 헤픈우연을 들으며 이번 글을 마무리한다.
https://www.youtube.com/watch?v=ex18y4jADSM
2023 12월 Heize City 콘서트 버전인데 오케스트라 갑자기 나왔을 때 그 감동을 잊을수가 없다 그런데 생각해본다. 이렇게 하드코딩 하지 않고 개발하는 방법이 있을까? 그것은 다음 시간에...
Reference
Advanced Learning Algorithms
In the second course of the Machine Learning Specialization, you will: • Build and train a neural network with TensorFlow to perform multi-class ... 무료로 등록하십시오.
www.coursera.org
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글
Neural Network with NumPy | Advanced Learning Algorithm (1) 2024.02.09 Forward Propagation in NumPy | Advanced Learning Algorithm (1) 2024.02.09 Neural Network using TensorFlow | Advanced Learning Algorithm (1) 2024.02.09 Building a Neural Network | Advanced Learning Algorithm (0) 2024.02.09 Data in TensorFlow | Advanced Learning Algorithm (1) 2024.02.09