#1. 인공신경망이란?
- 추정, 예측을 위한 데이터 마이닝 도구로서 인간의 두뇌 속 뉴런의 작용을 본떠 패턴을 구성한 컴퓨팅 시스템의 일종
- 분류에서도 사용가능
Ex) Som 알고리즘: self organizing map이라고 부르는 다른 형태의 인공신경망
*장점: 경험을 통한 일반화 능력 (<--> Rule based approach와 반대)
*단점: black box approach
1) 내부에서 일어나는 일들을 설명하지 X
2) 결론에 도달한 이유를 설명하지 못함
* 인공신경망을 적용하기 좋은 문제의 특징
- input이 잘 이해된 상태
- output이 잘 이해가 된 상태
- 경험 사용이 가능한 상태(과거의 사례가 존재해야함)
#2. 인공신경망의 History
- XOR로직 (값이 같은면 False 다르면 True를 반환하는 알고리즘) 계산을 하지 못해 암흑기에 있었음
- 1982년 John Hopfield 교수가 Backpropagation 알고리즘을 발견하면서 인공신경망 연구의 르네상스를 맞이
- 통계학자들이 인공신경망의 배경을 설명하기 시작
Ex. 로지스틱회귀 또한 신경망의 일종
인간의 두뇌의 뉴런 vs. 인공신경망의 뉴런
ㅇ 인간의 두뇌의 뉴런
ㅇ 인공신경망의 뉴런
1) 노드, 유닛 단위가 신호를 전달
2) 활성 함수(Activation function)이 각 노드에 적용됨
- 결합함수: 뉴런으로부터 받아들이는 함수를 합침
- 전환함수: 비선형으로 전환
#3. 인공신경망의 활성화 함수
1) 결합함수
- 보통 Weighted Sum (가중합)을 씀
- 다른 것들도 존재 Ex. radial basis function..
2) 전환함수
- Threshold를 넘으면 작동됨
1. Threshold 근처 : 작은 입력 차이에 대해 출력에 큰 차이를 줌
2. Threshold 값에서 먼 곳: 큰 입력차이를 별 차이 없게 만듦
Ex. Sigmoid (Logistic), Hyperbolic tangent function
#4. 다중 퍼셉트론 구조 (Multi-layer perceptron)
- 입력층, 은닉층(hidden layer), 출력층이 있는 perceptron 구조 (보통 은닉층은 2개면 충분하다고 함..)
- 한 방향(입력 --> 은닉 --> 출력)으로 흘러가기 때문에 Feed-Forward Network라고도 함
1) 입력층
- 1~0 또는 -1~1 의 숫자 값으로 할당된 원청 필드에 연결
- 범주형일 경우, 하나의 노드에 매핑X, 여러 노드에 매핑함
2) 은닉층
- 입력층의 모든 노드와 연결
- 층이 넓을수록(은닉층의 노드가 많을수록 은닉층이 많을수록) 패턴 인식이 상승하지만 동시에 과적합의 위험이 존재
3) 출력층
- 한개의 출력노드 또는, 여러개의 출력 노드 만들기 가능
- 앞 계층 은닉층과 연결되어 있음
- 0~1 또는 -1~1의 값으로 출력 이후 원래 값으로 변환
Ex. 범주형 input: A, B, C => -1, 0, 1
연속형 input: 연도 1998, 2007 등 => scaler 사용해서 -1~1의 값이 되도록 조정
* 진행 과정
1) 입력과 출력 변수 인식
2) -1~1 범위내 값으로 변환
3) 신경망 위상(topology)의 결정
Ex. 인풋 노드는 어떤것? 히든레이어는 1개? 또는 2개? 각 레이어의 갯수, 히든 노드의 수는 몇개?를 결정해줘야함
(요즘은 네트워크 토폴로지를 결정해주는 툴 존재함)
4) 훈련 셋을 통해 신경망 내의 단위들을 연결하는 간선에 최선의 가중치를 훈련하여 결정하고 weight generation 집합을
구성함
5) 검증 셋을 통해 weight generation 집합 중 가장 성능이 좋은 weight 집합(=generation set)을 추출
- Sum of Squared error를 최소화 하도록 weight값 조정 (Backpropagation 알고리즘)
- 출력값, 입력값 case 존재하기 때문에 (예측값-실제값)^2 합을 구할 수 있음
- 보통 Overfitting 때문에 중간 세대의 weight집합이 더 좋은 성능을 갖음
6) 테스트 셋으로 신경망 평가
#5. 역전파 (Backpropagation)_ 최적화 문제(weight 조정)
1) 신경망이 훈련 예시를 받아 신경망 내의 기존 가중치들을 이용하여 출력을 계산
2) 계산된값과 실제값 사이의 오차를 계산
3) 오차의 합은 신경망에 피드백으로 작용하여 오차를 최소화하도록 가중치를 수정을 반복 (1 set = 1 generation)
* weight를 조정하는 방법
- 여기서 사용하는 방법은 일반화 델타(미분 즉, 기울기 이용)
- 가장 목표변수와의 차이값을 줄여줄 수 있는 쪽으로 weight 조정
- 학습 방법: 1) momentum: 방향성 일정하게 유지하는 것
Ex. 산을 내려갈때 기울기가 달라지는데 그때마다 방향성이 달라질 수 있음
2) Learning rate: 새로운 정보를 학습하는 비중
Ex. 처음 학습할때는 새로운 정보가 많이 필요하지만 시간이 가면서 학습을 많이 하게되면
새로운 정보가 차지하는 비중이 줄어든다
- 한계점: 최적의 웨이트 집합을 보장하기 어려움
Ex. 국소 최적 값, local optimum에 빠질 수 있기 때문
알고리즘이 계속해서 weight 조절하다가 더이상 weight의 변화가 크지 않을때 stop함.
따라서 작은 골짜기에서 stop할 수 있음.
#6. 균형화
- 균형화 (모델 학습진행 전에 완료되어야 함)
- 데이터셋의 정답 레이블 클래스 사이즈가 불균형할 경우 진행
Ex. 이메일 응답 고객 수 < 응답X 고객 수, 이탈 고객 수> 이탈 X 고객 수
- why? 다수의 sample에 큰 사이즈의 레이블 클래스를 할당하게 됨
따라서, 데이터 균형화 작업이 필수적
* 균형화 방법
1) 다수 집단에 대한 undersampling --> 다수 레이블을 소수 레이블 수에 맞도록 샘플링
2) 소수 집단에 대한 oversampling --> 소수 레이블을 복사해서 많이 만드는 거
3) 비용 함수 적용 --> 가중치를 이용해 소수집단을 안틀리도록 모델을 구성
Ex. 다수 집단 틀린 것 1점 감소, 소수집단 틀린 것 50, 100점 감소
#7. 모형 평가 방법
1. 이분형 목표변수를 가진 경우 평가 방법
(값이 True/Fasle 둘 중 하나라고 가정할 경우)
1) 정분류율 <--> 오분류율 : 전체에서 정답율/ 전체에서 오답율
2) recall(=sensitivity): 실제 True 중에 몇개를 맞췄는가?
Ex. 암 판단의 경우 실제 암일때 암이라고 판단하는게 중요
3) specificity: 실제 False 중에 몇개를 잘 맞췄는가?
4) precision: 예측 True중 얼마를 맞췄는가?
Ex. 스팸 메일이라고 예측되었을때 스팸 메일인지 아닌지 중요
*recall & precision은 trade-off 관계
- F1-score = 2*(정밀도*재현율)/(정밀도+재현율)
- recall과 precision의 조합평균을 사용하여 어디에도 치우치지 않는 값을 가질때 높은 값을 반환하는 F1-score를 사용하여
모델 평가 가능 (값이 클수록 객관성을 갖음)
*sensitivity & specificity는 trade-off 관계
- 실제 True에서 예측 True가 얼마나 나왔는지(sensitivity) vs. 실제 False에서 예측 False가 얼마나 나왔는지 (specificity)
- 이를 활용한 그래프가 'ROC(Receiver Operating Characteristic)' 그래프
- X축은 FP ratio=(1-specificity), 즉 암이 아닌데 암이라고 판단할 확률
- Y축은 TP ratio=sensitivity, 즉 암인데 암이라고 판단할 확률
- AUC (Area Under the ROC Curve) : ROC 커브의 면적으로 1일수록 good model!
- 완벽한 모델일 경우 TPR 100%, FPR 0%
2. 분류모델 평가지표
- 모델을 사용하여 데이터 선택시 목표 집단의 레코드가 몇퍼센트가 포함되는지에 대한 도표
* 이익도표(Gain Chart)
- idea: 전체에서 랜덤 추출하여 메일을 보내는 것보다 응답할 확률이 높은 집단에서 랜덤 추출하여 메일 보내는 것이 더 효율 good!
- 즉, 모델을 사용했을 때 얼마나 이익을 볼 수 있는지를 알 수 있는 도표
* 향상도 도표 (Lift Chart)
- 모델을 사용했을때 상승한 이익율을 따로 시각화하여 향상도를 시각화한 도표
3. 수치형 목표변수를 가진 경우 평가 방법
1) MAE(Mean Absolute Error): 평균 절대 오차
-측정값과 실제값 사이의 절대 오차를 모두 구하고 구한 절대 오차들을 모두 더함. 이를 절대 오차의 갯수로 나눔
2) MSE(Mean Square Error): 평균 제곱 오차
3) RMSE(Root Mean Square Error):: 평균 제곱근 오차
4) MAPE(Mean Absolute Percentage Error): 평균절대오차비율
'머신러닝 스터디 > 딥러닝' 카테고리의 다른 글
꼭 알아야할 수학(3)_미분심화 (0) | 2023.02.04 |
---|---|
꼭 알아야할 수학(2)_미분 (0) | 2023.01.31 |
꼭 알아야할 수학(1)_로그/행렬/벡터 (0) | 2023.01.31 |
인공신경망 (Artificial Neural Network, ANN)_(3) (0) | 2023.01.22 |
인공신경망 (Artificial Neural Network, ANN)_(2) (0) | 2022.10.01 |