ch.3 신경망(1)

pasongtak·2024년 4월 30일

딥러닝

목록 보기
2/11

신경망

  • 퍼셉트론은 가중치 매개변수의 값을 직접 수동으로 설정해야하지만, 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 있다.
  • 신경망은 입력층, 은닉층, 출력층으로 구성되어 있다.

활성화 함수

활성화 함수는 입력 신호의 총합을 출력 신호로 변환하는 함수이며, 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다.


위 사진에서 h()가 활성화 함수이다.

계단 함수

임계값을 경계로 출력이 바뀌는 함수이다. 퍼셉트론에서는 계단 함수를 사용한다.

계단 함수 구현하기

def step_function(x):
	y = x > 0
    return y.astype(np.int)
  • astype() 메서드 : 넘파이 배열의 자료형을 변환할 때 사용하는 메서드
  • bool 자료형을 int 자료형으로 변환하면, True는 1로 False는 0으로 변환된다.

계단 함수 그래프

import numpy as np
import matplotlib.pylab as plt

def step_function(x):
	return np.array(x > 0, dtype=np.int)
    
x = np.arange(-5.0, 5.0, 0.1)
y = step_function(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show

시그모이드 함수

신경망에서는 시그모이드 함수를 이용하여 신호를 변환하고, 변환된 신호를 다음 뉴런에 전달한다.

시그모이드 함수 구현하기

def sigmoid(x):
	return 1 / (1 + np.exp(-x))

시그모이드 함수 그래프

def sigmoid(x):
	return 1 / (1 + np.exp(-x))

x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

시그모이드 함수와 계단 함수 비교

  • 시그모이드 함수는 곡선 형태이고, 입력에 따라 출력이 연속적으로 변화한다. 반환값은 실수이다.
  • 계단 함수는 0을 경계로 출력이 갑자기 바뀌는 형태이고, 0과 1 중 하나의 값만 반환값으로 가진다.

비선형 함수

  • 비선형 함수에는 계단함수, 시그모이드 함수 둘 다 포함된다.
  • 신경망에서는 활성화 함수로 비선형 함수를 사용해야한다.
    • 선형 함수를 사용하게 되면 신경망의 층을 아무리 깊게 해도 '은닉층이 없는 네트워크'로 똑같은 기능을 할 수 있기 때문이다.

ReLU 함수

입력이 0을 넘으면 그 입력을 그대로 출력하고, 0 이하이면 0을 출력하는 함수이다.

def relu(x):
	return np.maximum(0, x)
  • np.maximum(x1, x2): 두 입력 중 큰 값을 선택해 반환하는 함수

다차원 배열의 계산

  • np.ndim(): 배열의 차원 수를 확인하는 함수
  • shape(): 배열의 형상을 나타내는 함수, 튜플 자료형으로 반환한다.
  • 2차원 배열을 행렬이라고 하며, 가로를 행이라고 하고, 세로를 열이라고 한다.

행렬의 곱

>>> A = np.array([[1, 2], [3, 4]])
>>> A.shape
(2, 2)

>>> B = np.array([[5, 6], [7, 8]])
>>> B.shape
(2, 2)

>>> np.dot(A, B)
array([[19, 22],
	   [43, 50]])
  • np.dot(): 행렬의 곱을 계산하는 함수
  • 두 행렬에 대응하는 차원의 원소 수를 일치시켜야한다.

신경망에서의 행렬 곱

>>> X = np.array([1, 2])
>>> X.shape
(2,)
>>> W = np.array([1, 3, 5], [2, 4, 6])
>>> W.shape
(2, 3)
>>> Y = np.dot(X, W)
>>> print(Y)
[5 11 17]

정리

퍼셉트론은 활성화 함수로 계단 함수를 사용하고, 신경망은 활성화 함수로 시그모이드 함수를 사용한다.

0개의 댓글