[요약정리]딥 러닝을 이용한 자연어 처리 입문(Ch7.머신 러닝 개요)
머신러닝에 대해 까먹은것도 있고 해서 쉽게 볼수 있게 최대한 짧게 정리해보았다.
참고 사이트 : 딥 러닝을 이용한 자연어 처리 입문 에 대한 글을 요약하였다.
Ch07. 머신 러닝(Machine Learning) 개요
1) 머신 러닝이란
- 이미지 인식 분야에서 특징 잡아내는것에 한계가 있었는데 이 문제를 머신 러닝이 해결
2) 머신 러닝 훑어보기
- 훈련/검증/테스트로 분리해서 사용 (검증용은 모델 성능 평가가 아닌 모델의 성능을 조정하는 하이퍼파라미터 값 조정을 위한 용도)
- 매개변수는 가중치와 편향과 같은 학습을 통해 바뀌어져가는 변수를 말함(<->하이퍼파라미터는 과적합 판단 조정)
- 하이퍼파라미터 튜닝 : 검증용 데이터를 사용하여 정확도 검증
- 튜닝 끝났으면 테스트 데이터로 진짜 모델 성능 평가하면 된다.
- 분류 회귀 : 이진 분류/다중클래스분류/회귀
- 지도학습 : 레이블 있음, 비지도 : 없음
- 혼돈 행렬(Confusion Matrix) : 참거짓/실제 참거짓 테이블
- 과적합/과소적합
3) 선형 회귀(Linear Regression)
- 모델 : 선형회귀
- 비용함수(=손실함수) : 평균 제곱 오차(MSE)
- 옵티마이저(Optimizer) : 경사 하강법(Gradient Descent) - 적당히 기울기 W 해야함 낮으면 느리고 높으면 발산
4) 로지스틱 회귀(Logistic Regression) - 이진 분류
- 모델 : 시그모이드 함수로 표현
MSE 비용함수의 문제 : 평균 제곱 오차 사용하지 않음 왜냐면 시그모이드 함수의 비용함수를 평균제곱오차로 하면 아래처럼 로컬 미니멈과 글로벌 미니멈이 나타남
- 비용함수 : MSE는 안되니까 로그식으로 만들어진 크로스 엔트로피 함수 사용
5) 다중 입력에 대한 실습
- 나중에 따라해 보기 실습 코드
6) 벡터와 행렬 연산
- 3차원 행렬 부터 주로 텐서라고 부름
- 3차원 텐서는 보통 samples/batch_size는 데이터의 개수, timesteps는 시퀀스의 길이, word_dim은 단어 이렇게 3개로 나눈다.
- 예를 들어 [[[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0]], [[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0]], [[0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]]] 이는 (3, 3, 6)의 크기를 가지는 3D 텐서입니다.
7) 소프트맥스 회귀(Softmax Regression) - 다중 클래스 분류
- 모델 : 소프트맥스 함수로 각각을 확률 추정하는데 전체 확률 더해서 1나오게 조정
- 실제값을 클래스로 1,2,3,4로 하면 오차 계산 이상해지니 원핫 인코딩으로 해야함
- 비용함수 : 크로스 엔트로피 함수