딥러닝
머신러닝의 여러 방법론 중 하나로, 인경신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법이다. 일굴 인식 카메라나 기계 번역 모델, 알파고 제로와 같은 적용 사례가 있다. (알파고는 본래 강화 학습 모델이었으나 딥러닝이 결합함) 딥러닝 모델은 데이터의 특성을 스스로 학습하는 게 특징이다.
인공신경망
생물학의 신경망에서 영감을 얻은 학습 알고리즘으로, 사람의 신경 시스템을 모방했다.
퍼셉트론
$x_1, x_2$와 같이 입력 값을 신호로 받으면 가중치는 들어오는 신호의 증폭 정도를 정해준다. bias는 입력하는 값에 상관없이 무조건 입력되는 값이다. 수식에 맞게 합산이 되고, 활성화 함수(Activation function)을 거쳐야만 y값이 출력된다.
여기서 활성화 함수가 $x>=0$일 때 $1$이고, $x<0$일 때 $0$이 되는 함수이고 가중치 $w_1, w_2$가 각각 2, 1이라 하자. 입력값 $x_1, x_2$를 $1, 0$으로 받았을 때 bias가 $-0.5$면 합계는 1.5가 나오고, 활성화 함수를 통과하면 1이 된다.
퍼셉트론으로 데이터가 들어오고 가중치를 조정해서 실제 y를 얼마나 잘 예측할 지를 만들 수 있다. 퍼셉트론은 선형 분류기로써 데이터 분류가 가능하다. 선을 통해서 분류한다는 말이다. 단순히 말하자면 그래프(선)를 그렸을 때 그래프 위, 아래에 있는지에 따라 데이터가 분류되는 것이다. 하지만 데이터가 하나의 선으로만 구분할 수 없는 경우가 있고 이럴 때는 퍼셉트론을 사용하는 것이 불가능하다.
# 신작 드라마 수와 여가 시간을 입력했을 때 학습 여부를 예측하는 퍼셉트론 함수
def Perceptron(x_1,x_2):
# 설정한 가중치값을 적용
w_0 = -5 # 다른 영향을 받지 않고 학습을 해야 한다는 의지
w_1 = -1 # 드라마 시청 욕구로 인한 영향
w_2 = 5 # 여가 시간에 공부하고 싶은 정도
# 활성화 함수에 들어갈 값을 계산
output = w_0+w_1*x_1+w_2*x_2
# 활성화 함수 결과를 계산
if output < 0:
y = 0
else:
y = 1
return y, output
"""
1. perceptron의 예측 결과가 학습한다:1 이 나오도록
x_1, x_2에 적절한 값을 입력하세요.
"""
x_1 = 5 # 오늘 나온 신작 드라마 수
x_2 = 10 # 확보한 여가 시간
result, go_out = Perceptron(x_1,x_2)
print("신호의 총합 : %d" % go_out)
if go_out > 0:
print("학습 여부 : %d\n ==> 학습한다!" % result)
else:
print("학습 여부 : %d\n ==> 학습하지 않는다!" % result)
다층 퍼셉트론(Multi Layer Perceptron)
단층 퍼셉트론은 입력층과 출력층만 존재한다. 선형적이라는 건 데이터를 분리할 때 선 하나로 분리할 수 있는 경우(정확한 의미는 아님)를 말하는데, 단층 퍼셉트론은 한 층밖에 없어서 선형적인 문제만 해결할 수 있었다.
입력과 출력 사이에 다른 퍼셉트론이 와서 쌓이면 다층이 된다. 이렇게 단층 퍼셉트론을 여러 개 쌓은 것을 다층 퍼셉트론이라고 부른다. 단층 퍼셉트론에서 구분하지 못했던 결과를 조합해서 새롭게 출력해낸다.
히든층(Hidden Layer)
입력층과 출력층 사이의 모든 Layer를 의미한다.
히든층이 많아진다면, 신경망의 깊이가 깊어진다고 한다. 같은 의미로 Deep Learning 단어를 사용하기도 한다. 다층 퍼셉트론이 복잡해진 경우라고 생각하면 된다. 히든층이 많아지면 분류할 수 있는 방법이 많아져서 성능이 좋아진다. 하지만 쌓이면 쌓일수록 모든 가중치와 노드들 사이의 연결을 다 구해야하기 때문에 마냥 깊게 쌓을 수만은 없다.
'AI / DL > 엘리스 AI 데이터 분석 트랙' 카테고리의 다른 글
[AI 데이터 분석] 딥러닝 시작하기 03. 다양한 신경망 (1) (0) | 2022.10.08 |
---|---|
[AI 데이터 분석] 딥러닝 시작하기 02. 텐서플로우와 신경망 (0) | 2022.10.08 |
[AI 데이터 분석] 머신러닝 시작하기 04. 지도학습 - 분류 (0) | 2022.10.07 |
[AI 데이터 분석] 머신러닝 시작하기 03. 지도학습 - 회귀 (0) | 2022.10.07 |
[AI 데이터 분석] 머신러닝 시작하기 02. 데이터 전 처리하기 (0) | 2022.10.07 |
댓글