David의 개발 이야기!

신경망이란 무엇일까? 본문

밑바닥부터 시작하는 딥러닝

신경망이란 무엇일까?

david.kim2028 2022. 5. 15. 15:44
반응형

1. 퍼셉트론에서 신경망으로 

 

 

2. 활성화함수의 등장

 

활성화함수에 대한 더 자세한 설명은 아래글을 참고 바란다!

 

2022.01.16 - [인공지능공부] - 활성화 함수가 필요한 이유는 무엇일까?

 

활성화 함수가 필요한 이유는 무엇일까?

신경망 회로에서, 한 노드에 대해 입력값을 다음 노드에 보낼지 말지에 대해 결정하는 함수를 의미한다. 선형 함수가 아니라 비선형 함수를 사용하는 이유는 딥러닝 모델의 레이어 층을 깊게 가

david-kim2028.tistory.com

 

2-1 계단 함수 구현하기 

 

2-2 시그모이드 함수 구현하기 

 

2-3 ReLU 함수 구현하기 

 

3. 다차원 배열의 계산

3-1 계산하기 위해 알아야할 것들 

ndim() -> 배열의 차원수를 확인하는 함수!

.shape -> 배열의 형상을 확인하는 인스턴스 변수로, 튜플 형태로 반환하는것을 주의하자! 

 

np.dot() -> 행렬의 곱 

 

3-2 3층 신경망 구현하기 

[ 표기법 ] 

입력층에서 1층으로의 신호 전달 

 

1층에서 2층으로의 신호전달 

 

2층에서 출력층으로의 신호전달

 

 

3-3 구현정리

init_network() 와 forward() 함수를 정희했다. init_network() 함수는 가중치와 편향을 초기화하고, 이들을 딕셔너리 변수인 network 에 저장한다. 이 딕셔너리 변수 network 에는 각 층에 필요한 매개변수(가중치와 편향)을 저장한다. 그리고 forward 함수는 입력신호를 출력으로 변환하느 처리 과정을 모두 구현하고 있다. 

 

3-4 출력층 설계하기 

신경망은 분류와 회귀 모두에 이용할 수 있다. 다만 둘중 어떤 문제냐에 따라 출력층에서 사용하는 활성화함수가 달라진다. 일반적으로 회귀에는 항등함수를, 분류에는 소프트맥스 함수를 사용한다. 

 

3-4-1 항등함수와 소프트맥스 함수 구현하기 

 

소프트맥스 함수 구현시 주의할 점으로는, 오버플로 문제이다. 지수함수가 무한대로 커지기 때문에 입력신호의 최댓값을 이용해 해결한다.

 

소프트맥스 함수의 성질 

 

 

반응형
Comments