📖 신경망을 수식으로 분해해보자
📖 소프트맥스 연산
import numpy as np
def softmax(vec):
denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True))
numerator = np.sum(denumerator, axis=-1, keepdims=True)
val = denumerator / numerator
return val
vec = np.array([[1, 2, 0], [-1, 0, 1], [-10, 0, 10]])
softmax(vec)
array([[2.44728471e-01, 6.65240956e-01, 9.00305732e-02], [9.00305732e-02, 2.44728471e-01, 6.65240956e-01], [2.06106005e-09, 4.53978686e-05, 9.99954600e-01]])
import numpy as np
def one_hot(val, dim):
return [np.eye(dim)[_] for _ in val]
def one_hot_encoding(vec):
vec_dim = vec.shape[1]
vec_argmax = np.argmax(vec, axis = -1)
return one_hot(vec_argmax, vec_dim)
def softmax(vec):
denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True))
numerator = np.sum(denumerator, axis=-1, keepdims=True)
val = denumerator / numerator
return val
vec = np.array([[1, 2, 0], [-1, 0, 1], [-10, 0, 10]])
print(one_hot_encoding(vec))
print(one_hot_encoding(softmax(vec)))
[array([0., 1., 0.]), array([0., 0., 1.]), array([0., 0., 1.])] [array([0., 1., 0.]), array([0., 0., 1.]), array([0., 0., 1.])]
📖 활성함수가 뭐에요?
📖 왜 층을 여러개를 쌓나요?
📖 딥러닝 학습원리 : 역전파 알고리즘
📖 역전파 알고리즘 원리 이해하기
📖 예제 : 2층 신경망
<이 게시물은 임성빈 교수님의 '딥러닝 학습방법 이해하기' 강의 자료를 참고하여 작성되었습니다.>
본 포스트의 학습 내용은 [부스트캠프 AI Tech 5기] Pre-Course 강의 내용을 바탕으로 작성되었습니다.
부스트캠프 AI Tech 5기 Pre-Course는 일정 기간 동안에만 운영되는 강의이며,
AI 관련 강의를 학습하고자 하시는 분들은 부스트코스 AI 강좌에서 기간 제한 없이 학습하실 수 있습니다.
(https://www.boostcourse.org/)