본문 바로가기
개발 공부/머신러닝, 딥러닝

딥러닝의 이해

by momo'sdad 2023. 10. 17.

딥러닝의 이해

딥러닝 : 이미지, 영상, 음성등 다양한 데이터 예측가능

> 이미지 생성, 문자열 분석, 영상 예측

단일 퍼셉트론

model.add(Dense(units = 1, input_dim = 2)

- 한 층에 하나의 퍼셉트론을 사용

- And, Or는 구분 가능

- XOR는 구분 불가능

다중 퍼셉트론 - Multi layer perceptron

model.add(Dense(units = 1, input_dim = 2)

model.add(Dense(units =1))

- 두개의 층으로 이루어짐

- 각 층은 하나의 퍼셉트론으로 이루어짐

- MLP를 기반으로 다양한 모델이 파생

- CNN, RNN, LSTM, YOLO

딥러닝 구조

입력층 : 데이터를 입력받는 층, 1개의 층

중간층(은닉층) : 분석(예측)을 진행하는 층, 층의 갯수에 제한이 없음

출력층 : 분석 내용을 종합해서 결과를 출력, 1개의 층

딥러닝 실행 방법

- 머신러닝

knn = KNeighborClassifier()

knn.fit(X_train, y_train)

- 딥러닝

1. 딥러닝 (신경망) 설계

-- 입력층, 중간층, 출력층 생성하기

2. 실행방법(compile)

-- 오차(loss), 최적화함수(optimizer), 평가방법(metrics)

-- 분류에서만 평가방법 기재, 회귀에서는 기재하지 않음

3. 학습(fit)

-- X, y, batch_size, epochs

-> X:문제, y:정답, batch_size:내 컴퓨터 성능에 맞게 설정 성능이 좋으면 높게 낮으면 낮게(한번에 학습할 데이터수), epochs:반복횟수

● 오차역전파, 활성화함수, 손실함수

오차역전파

: 딥러닝 모델이 문제데이터로 정답데이터의 규칙을 찾는다

- 순전파(추론)

-> 입력데이터를 입력층~출력층까지전파 시키면서 결과를 추론하는 과정

- 역전파(학습)

-> 추론된 결과에서 에러를 계산하고 출력층~입력층으로 에러를 전파시키면서 최적의 모델을 만드는 것

활성화함수(각 층의 activation에 적음)

: 다음 계층으로 신호를 전달할때 계층의 생각을 전달하기 위함

-sigmoid(입력, 중간, 출력), tanh(입력, 중간), softmax(출력), relu(입력,중간)

- 입력층, 중간층에서는 relu를 대부분 사용함 > 기울기 소실의 문제가 발생하지 않음

- 분류: 출력층에서는 단일출력 - sigmoid, 다중출력 -softmax

- 회귀: 출력층에 아무것도 입력하지 않음(linear)

손실함수(compile에 loss에 기재)

: 오차를 구하는 함수

순전파에서 오차를 구해서 역전파에서 반영시키기 위해서

- mse(평균제곱오차- 회귀), binary_crossentropy(이진분류), categorical_crossentropy(다중분류)

반응형