728x90
반응형
- 컴퓨터가 학습할 수 있도록 명시적으로 프로그래밍 하지 않고 모델을 통해 자동화하는 것
- 코드를 직접 짜는 것이 아닌 데이터로 학습시키는 것
- 따라서 중요한 것은 데이터의 질
- 수많은 머신러닝 모델이 존재
- 모든 머신러닝이 가지고 있는 3가지 요소
- 모델
- 평가
- 최적화
- 머신러닝을 위한 과정
- 모델이 나타낼 수 있는 것들
- 머신러닝에서 중요한 과정 : 최적화 / 탐색
- 존재하는 파라미터값을 통해 최적의 결과를 추출할 수 있도록 탐색해야함
- 딥러닝은 Layer가 존재하고 그 사이에 존재하는 파라미터 값을 통해 Optimization 과정을 진행한다.
- 머신러닝에서의 파라미터가 딥러닝에서는 가중치가 된다.
- 가중치 값 조정을 통해 오차를 가장 낮은 수준으로 최소화하는 것이 목표이다.
- Supervised vs Unsupervised의 차이점은 제공되는 데이터의 label 값 존재 여부이다.
- label이 없을 때는 그룹화하는 것이 방법이 될 수 있다. (클러스터링)
- Semi-supervised는 일부만 제공
- Reinforcement는 강화학습으로 외부의 Reward 사용
- label이 존재하기 때문에 분류(Classification)가 가능함
- 비슷한 연속된 값으로 추측 : Regression (ex) 월급 추측
- 위 두가지 다른 것 중요
- 스팸 메일을 분류하는 방법이 뭐가 있을까
- 내용 속에 존재하는 단어(Feature) 존재 여부를 통해 예측
- 이미지 같은 경우도 존재
- 위 같은 경우는 연속적인 값들이므로 Regression (회귀)
- 또 다른 경우?
- 데이터만 주어지고 해당 데이터의 label은 주어지지 않음
- 클러스터링
Clustering 예시
- 결과가 연속적인 값으로 나타남
- ex) 현재 기온 예측 -> 시시각각으로 변할 수 있음 연속적인 값이기 때문
- 선형 회귀
- 모델 표현은 정해져있고
- 가중치 변화를 통해 Optimization 진행, 가중치는 세타
- 제일 간단한 Regression
- Uni - 하나의 변수라는 뜻
- 11번가 가격을 통해 쿠팡 가격 예측
- 큰 차이는 없을테지만 패턴 예측
- 선을 통해 예측 - Fit 과정
- Linear Fitting
- 선과 점 사이 거리 계산을 통해 예측 결과가 근접한지 확인 - 거리가 중요!
- y가 예측값, x는 주어진 데이터, w는 벡터(파라미터), e는 노이즈(에러)
- 목표는 주어진 데이터를 통해 목표를 예측하는 것
- Loss는 실제값 - 예측값 차이
- Loss를 최소화 하는 것이 목표
- Take the derivative -> 미분해서 0이 되는 값(w에 대해 미분)
- w에 대해 미분하고 그 값이 0이되는 값 구하기
- 식으로 풀 수 있는 머신러닝 문제
- 주어진 변수가 2개 이상인 Regression
- 11번가와 G마켓 가격이 주어지고 쿠팡 가격 예측하기
- 2개의 주어진 데이터
그럼 Univariate Regrssion을 Multivariate Regression으로 만드는 방법?
- 주어진 한 개의 데이터를 제곱, 세제곱 식으로 데이터를 복잡하게 하여 정의
- 변수는 하난데 복잡한 항을 만들어서 함
- 변수는 하나인데 복잡한 항을 만들어 함수를 만드는 것
- 성능이 좋아질 수 있음
- 현재 상황에서 에러를 줄이는 방향으로 최적화 진행 - 가중치 및 파라미터 변환
- Gradient(기울기)를 하강시키는 것 - 경사하강법
- w를 기준으로 1차 미분 - First-Order Optimization
- 가장 많이 쓰이는 방법 - 경사하강법
- 2차 함수처럼 포물선 형태로 되어있는 Convex Optimization은 최소값으로 도달할 수 있다.
- Convex는 줄을 그어있을 만나는 점이 2개 / Non Convex는 2개 x
- 보통 많이 쓰이는 방식은 3번째
- 학습은 랜덤이 좋음
- w가 파라미터, 세타는 베이스 함수 (Gaussian, Sigmoid, Polynomial etc...)
- 주어지는 모든 파라미터를 편미분하여 loss 최소화가 목표 (w로 각각에 대해 미분)
- 시험 문제임 - 각각에 대해 미분해서 값 구하기
- 하나의 변수를 복잡하게 만들어 함수식을 도출한 후 이를 학습시키게 되면 과적합이 발생할 수 있다.
- 이는 주어진 데이터에만 치중되어 학습된 것. 새로운 데이터에는 에러 발생 확률이 높아짐
- 모델이 복잡해지면서 파라미터 값이 매우 불안정하게 됨
- 학습 데이터에만 맞춰진 현상
- 그래서 파라미터가 커지면 페널티를 적용시킴
- 페널티를 적용 시키는 것 : 가중치의 값이 매우 커지게 되는 것을 방지, w가 너무 커지게 되는 것 방지
- Regularization
- 적용시키면 이렇게 완전 과적합이 아닌 조금은 떨어지게 함
- w값을 너무 낮게 하여 0에 수렴하게 만들면 예측값(y)도 0이 되어 위 그림처럼 늘 0에 수렴
- 이를 Over Regularization이라 함
- 정규화와 파라미터에 대한 편미분을 통해 loss 최소화가 목표
728x90
반응형
'2023 > 2023-1' 카테고리의 다른 글
[4월11일(화)] 인공지능 입문(이론) (0) | 2023.04.11 |
---|---|
[캡스톤 디자인] 4월 5일(수) 회의록 (0) | 2023.04.05 |
[3월30일(목)] 인공지능 입문(실습) - 확률 이론 (0) | 2023.03.30 |
[캡스톤디자인] 제안서 발표 피드백 정리 (0) | 2023.03.24 |
[3/23(목)] 인공지능 입문(실습) - 명제 지식 베이스, 추론, CNF (0) | 2023.03.23 |