본문 바로가기

초보자5

[비전공자용] [Python] Xavier Initialization (Xavier 초기화) & He Initialization (He 초기화) 신경망 학습에서 가중치 초깃값을 어떻게 정하느냐에 따라 신경망 학습이 성공할 수도 있고 실패할 수도 있습니다. 은닉층 Hidden Layer의 활성화값(활성화 함수의 출력 데이터, 계층 사이를 흐르는 데이터)의 분포를 잘 관찰하면 가중치를 어떻게 설정해야 좋을지 알 수 있습니다. 은닉층이 5개이고, 각 층의 뉴런이 100개씩 존재한다고 합시다. 입력 데이터로서 1,000개의 데이터를 표준정규분포로 랜덤하게 생성하여 5층 신경망에 흘리고 각 층의 활성화값을 비교해 볼 것 입니다. 활성화 함수로는 시그모이드 Sigmoid 함수를 사용하고, 각 층의 활성화 결과를 activations 변수에 저장합니다. 가중치 초깃값을 표준정규분포로 설정하고 표준편차를 변화시키면서 활성화 결과를 히스토그램으로 보겠습니다. 파.. 2020. 7. 10.
[비전공자용] [Python] 모멘텀, AdaGrad, Adam 최적화기법 이번 포스트에서는 모멘텀, AdaGrd, Adam 최적화 기법에 대해 상세히 알아볼 겁니다. 1. 모멘텀 Momentum 모멘텀은 운동량을 뜻하는 단어로, 신경망에서의 모멘텀 기법은 아래 수식과 같이 표현할 수 있습니다. SGD에서와 마찬가지로 W 는 갱신할 가중치 매개변수, L은 손실함수를 나타내고 η 는 학습률 learning rate, ∂L/∂W은 W 에 대한 손실함수의 기울기를 나타냅니다. SGD와 달리 변수 v가 등장하는데 물리에서 운동량을 나타내는 식은 p = mv, 질량 m, 속도 v이므로 위 수식에서도 v는 속도를 의미합니다. 매개변수 α를 v에 곱해서 αv 항은 물체가 아무 힘도 받지 않을 때도 서서히 하강시키는 역할을 하게 됩니다. 물리에서의 마찰력이라고 생각하면 편할 것 같습니다. 하.. 2020. 7. 9.
[비전공자용] 확률적 경사 하강법 SGD 의 단점 SGD란? 이전 포스트에서는 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)을 이용했습니다. 이 방법을 확률적 경사 하강법, 즉 Stochastic Gradient Decent (SGD) 라고 합니다. SGD의 수식은 아래 식과 같이 쓸 수 있습니다. 여기에서 W 는 갱신할 가중치 매개변수, L은 손실함수를 나타내고 η 는 학습률 learning rate, ∂L/∂W은 W 에 대한 손실함수의 기울기를 나타냅니다. 즉, SGD는 기울어진 방향으로 일정 거리만 가겠다는 단순한 방법입니다. SGD를 파이썬 코드로 간단히 구현하면 다음과 같습니다. import numpy as np class SGD: """확률적 경사 하강법(Stochastic Gradient Descent)""" def __init.. 2020. 7. 8.
[비전공자용] [Python] 오차역전파법 Backpropagation 신경망 구현 https://huangdi.tistory.com/3 오늘은 오차 역전파법 신경망을 파이썬으로 구현해 볼 겁니다! 확률적 경사 하강법을 이용한 2층 신경망 미니배치 학습 구현 간단한 신경망 학습 구현을 위해 확률적 경사 하강법을 이용한 미니배치 학습 방법을 활용하는 예제입니다. 이번 글에서는 MNIST 데이터셋을 사용하여 학습을 수행할 거고 신경망은 은닉층이 1개 huangdi.tistory.com 시작하기에 앞서 이전 포스트에서 정리했던 신경망 학습의 순서 중 오차역전파법 Backpropagation이 어느 단계에 해당하는 지 봅시다. (1) 미니배치 훈련 데이터 중 일부를 무작위로 가져오고 이렇게 선별된 데이터를 비니배치라 하며, 미니매치의 손실 함수 loss function값을 줄이는 것이 신경망 .. 2020. 7. 8.
[비전공자용] [Python] 머신러닝과 딥러닝 구분 머신러닝과 딥러닝 개념적 차이? (pc에 최적화되어있으니 pc버전으로 봐주시면 더 좋을 것 같습니다) 머신러닝과 딥러닝을 개념적으로 구분하기 위해 한 예를 들어서 단순하게 설명하려고 합니다. 기존에는 어떤 이미지를 인식하려면 처음부터 알고리즘을 설계했었을 것입니다. 개 사진을 보고 개라는 결과를 얻기 위해서는 사람들이 보통 개에 대해 알고 있는 특징인 귀가 2개 있고, 다리가 4개 있고 코가 있다 등등의 기준이 있어야 할 것입니다. 아주 어려웠겠지만, 처음에는 이런 기준을 바탕으로 알고리즘을 짜서 이미지 인식을 했을 것입니다. ------------> [ 사람이 설계한 알고리즘 ] ------------> 결과(개) ↓ 하지만 머신러닝이 도입되면서 이미지에서 특징 feature (입력 데이터의 중요한 정.. 2020. 7. 3.
반응형