Chapter 3.4 3층 신경망 구현하기
·
Data Science/밑바닥부터 시작하는 딥러닝
이번에는 [그림 3-14]의 3층 신경망에서 수행되는, 입력부터 출력까지의 처리 (순방향 처리) 를 구현해보자. 이를 위해 앞에서 설명한 넘파이의 다차원 배열을 사용한다. 넘파이 배열을 잘 쓰면 아주 적은 코드만으로도 신경망의 순방향 처리를 완성할 수 있다. 3.4.1 표기법 설명 이번 절에서는 신경망에서의 처리를 설명하며 \(w_{12}^{\left( 1\right) }\) 과 \(a_{1}^{\left( 1\right) }\) 같은 표기법이 나온다. [그림 3-16]을 보면 입력층의 뉴런 \(x_{2}\)에서 다음 층의 뉴런 \(a_{1}^{\left( 1\right) }\)으로 향하는 선 위에 가중치를 표시하고 있다. [그림 3-16]과 같이 가중치와 은닉층 뉴런의 오른쪽 위에는 '\(^\left(..
Chapter 3.3 다차원 배열의 계산
·
Data Science/밑바닥부터 시작하는 딥러닝
넘파이의 다차원 배열을 사용한 계산법을 숙달하면 신경망을 효율적으로 구현할 수 있다. 그래서 이번엔 넘파이의 다차원 배열 계산에 대해 알아보고 신경망을 구현해보겠다. 3.3.1 다차원 배열 다차원 배열도 기본은 '숫자의 집합'이다. 숫자를 N차원으로 나열하는 것을 다차원 배열이라고 한다. >>> import numpy as np >>> A = np.array([1, 2, 3, 4]) >>> print(A) [1 2 3 4] >>> np.ndim(A) // np.ndim(): 배열의 차원 수 확인 1 >>> A.shape // '배열'.shape: 배열의 형상 확인, 무조건 튜플 형태로 반환 (4,) >>> A.shape[0] 4 2차원 배열은 특히 행렬(matrix)라고 부르고 [그림 3-10]과 같이 ..
Chapter 3.2 활성화 함수
·
Data Science/밑바닥부터 시작하는 딥러닝
x = np.arrange(-5.0, 5.0, 0.1) y = sigmoid(x) plt.plot(x, y) plt.ylim(-0.1, 1.1) plt.show() [식 3.3]과 같이 활성화 함수로 임계값을 경계로 출력은 함수를 계단 함수(step function)라 한다. 그래서 퍼셉트론에서는 활성화 함수로 쓸 수 있는 여러 후보 중에서 퍼셉트론은 계단 함수를 사용하고 있다. 활성화 함수를 계단 함수에서 다른 함수로 변경하는 것이 신경망으로 나아가는 길이다. 3.2.1 시그모이드 함수 다음은 신경망에서 자주 이용하는 활성화 함수인 시그모이드 함수(sigmoid fuction)를 나타낸 식이다. [식 3.6]에서 exp(\(-x\))는 \(e^{-x}\)를 뜻하며, \(e\)는 자연상수로 2.7182...
Chapter 3.1 퍼셉트론에서 신경망으로
·
Data Science/밑바닥부터 시작하는 딥러닝
3.1.1 신경망의 예 신경망을 그림으로 나타내면 [그림 3-1]처럼 된다. 여기에서 가장 왼쪽 줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 한다. 은닉층의 뉴런은 사람 눈에 보이지 않기 때문에 '은닉'층인 것이다. 이 책에서는 입력층에서 출력층 방향으로 차례로 0층, 1층, 2층이라고 부른다. cf) [그림 3-1]의 신경망은 모두 3층으로 구성되지만, 가중치를 갖는 층은 2개뿐이기 때문에 '2층 신경망'이라고 한다. 문헌에 따라서는 신경망을 구성하는 층수를 기준으로 '3층 신경망'이라고 하는 경우도 있다. 3.1.2 퍼셉트론 복습 신경망의 신호 전달 방법을 보기 전에 퍼셉트론을 복습해 보자. 먼저 [그림 3-2]와 같은 구조의 네트워크를 생각해 보자. [그림 3-2]는 \(x_{1}..
HaSeon9
'Data Science' 카테고리의 글 목록 (7 Page)