2.인공신경망


  1. 퍼셉트론으로 복잡한 함수도 표현할수 있다 (이론상으로)

  2. 가중치를 설정하는 작업은 여전히 사람이 수동으로 해야한다는 문제점이 여전히 있다.


인공신경망은 2번에 해당하는 문제점을 해결해준다.


2.1 신경망의 예

  • 입력층, 은닉층, 출력층 3개로 나누어져있다.

b= 편향  , bias 



2.2 활성화 함수의 등장 Activation Function

    • 활성화함수 식

      • y= h(a)

      • a= b+w1*x1+w2*x2





2.3 활성화 함수 시그모이드 함수

    • 시그모이드 함수 
h(x)= 1/1+exp(-x)


2.4 계단 함수 구현하기



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()



계단 함수는 어느 경계점을 기점으로 

출력값을 0,1  두가지 값으로 바꿔준다.





2.5 시그모이드 함수 구현


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


x = np.array([-1.0, 1.0, 2.0])
sigmoid(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~1 사이의 값을 출력해준다는 공통점이 있다.



시그모이드는 비선형 함수 이다.


인공 신경망에서는 활성화 함수로 비선형 함수를 사용해야한다.

선형함수를 이용하면  신경망의 층을 깊게하는 의미가 없어지기 때문이다.


층을 쌓는 혜택을 얻고싶다면 활성화 함수로 반드시 비선형 함수를 사용해야한다.




2.6 출력층 설계하기


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


NOTE : 기계학습 문제는 분류(Classification)와 회귀(regression)로 나뉩니다. 

분류는 불연속 수치 분석 (성별 :남or여)

회귀는 연속적인 수치 분석 (몸무게 50kg ~ 80kg)







+ Recent posts