딥러닝과 머신러닝의 차이점과 딥러닝에서 알아야 할 개념
머신러닝 vs 딥러닝
1) 코드 시간을 많이 쏟는 단계(7단계)
- 머신러닝 : 데이터 전처리, 탐색적 데이터 분석
- 딥러닝 : 모델 선택 및 하이퍼 파라미터 튜닝
딥러닝 코드에서 우리가 추가적으로 알아야할 개념
1. 퍼셉트론의 동작 원리
: 인간의 뉴런은 모방함
: 퍼셉트론 = 선형함수(정답을 찾는 방법) + 역치(activation)
: 다층 퍼셉트론(AND게이트 OR게이트 XOR게이트)
2. activation의 개념
- 다음층의 퍼셉트론에게 값을 전달하기전에 거치는 단계
- 입력층을 제외한 층에서 사용
- 층마다 같은 활성화함수를 공유
- sigmoid, tanh, softmax, linear, maxout, relu...
- 출력층에 사용하는 활성화함수
1) sigmoid : 이진분류 > 1개 대답
2) softmax : 다중분류 > 정답의 갯수만큼 대답
3) linear : 회귀 > 연속적인 숫자, 1개 대답
- 출력층을 제외한 층(입력, 중간)에서 사용되는 활성화함수
- relu(보통 동작 잘함)
- leaky relu, elu
3. 출력층이 다른층과 다른점
- 출력층은 결론을 내는 층이다
- activation이 분석하는 종류에 따라 다르다
units
1) 이진분류 > 1개 대답 : units = 1
2) 다중분류 > 정답의 갯수만큼 대답 units = 정답종류
3) 회귀 > 연속적인 숫자 : units = 1
4. compile(학습 방법 설정)
1) loss(오차)
- binary_crossentropy : 이진분류
- categorical_crossentropy : 다중분류
추가) spares_categorical_crossentropy
- mean_squared_error : 회귀
2) optimizer(최적화 함수 - 경사하강법)
- Adam(보통 좋은 값을 출력함)
- Nadam, RmsProp
3) metrics(평가 방법)
- accuracy : 분류
- mean_squared_error : 회귀 , 생략 가능
5. 이진분류 / 회귀 / 다중분류마다 달라지는점
1) 모델 설계 전
- 다중분류만 y데이터에 원핫인코딩 하기
2) 모델 설계
- 출력층의 units
: 이진분류, 회귀 = 1
: 다중분류 = 클래스의 수(ex 혈액형 = 4)
- 출력층의 activation
: 이진분류 = sigmoid
: 다중분류 = softmax
: 회귀 = linear
3) 모델 학습 방법 설정
- loss
: 이진분류 = binary_crossentropy
: 다중분류
1) 원핫인코딩 O : categorical_crossentropy
2) 원핫인코딩 X : sparse_categorical_crossentropy
: 회귀 = mean_squared_error
- metrics
: 분류 = accuracy
: 회귀 = mean_squared_error or 생략
머신러닝과 딥러닝 모두 데이터 전처리와 탐색적 데이터 분석이 중요한 단계이지만, 딥러닝에서는 모델 선택과 하이퍼 파라미터 튜닝에 더 많은 시간을 쏟아야 합니다.
딥러닝에서 우리가 추가적으로 알아야 할 개념으로는 퍼셉트론의 동작 원리, activation의 개념, 출력층과 다른 층의 활성화 함수, compile 함수 등이 있습니다.
퍼셉트론은 인간의 뉴런을 모방하여 만든 모델로, 선형함수와 역치를 결합한 모델입니다.
다층 퍼셉트론은 AND 게이트, OR 게이트, XOR 게이트를 사용하여 보다 복잡한 문제를 해결할 수 있습니다.
activation은 입력층을 제외한 층에서 사용하는 활성화 함수로, sigmoid, tanh, softmax, linear, maxout, relu 등이 있습니다.
출력층에 사용하는 활성화 함수는 sigmoid, softmax, linear 등이 있으며, 회귀 분석에서는 linear 함수가 사용됩니다.
compile 함수는 모델을 학습하기 위한 손실 함수와 최적화 알고리즘, 평가 방법 등을 지정하는 함수입니다.
이진분류, 회귀, 다중분류마다 모델 설계, 학습 방법 설정 등이 달라지는데,
이진분류는 출력층의 units가 1이며 sigmoid 함수를,
다중분류는 클래스의 수만큼 units를 설정하고 softmax 함수를,
회귀 분석에서는 출력층의 units가 1이며 linear 함수를 사용합니다.
또한, 손실 함수와 평가 방법도 분류와 회귀 분석에서는 서로 다릅니다.