오늘 한 것
[O] : 머신러닝 시작하기
** 최신경향 논문 사이트! ***
https://paperswithcode.com/sota
딥러닝 ⊂ 머신러닝 ⊂ "인공지능"
머신러닝의 시작 :
사람들이 미래를 예측하기 위해 수학 통계학을 활용하기 시작함
-> 컴퓨터를 작업에 사용하기 시작
- 컴퓨터의 발전
- 반복작업에 유리함
- 사람보다 빠름
예측 값이 예상 범위를 벗어나는 문제가 발생했고, 컴퓨터에게 학습을 시켜보자는 논의가 이루어지며 머신러닝이 시작되었다!
머신러닝 Machine Learning

- Supervised Learning 지도학습 : input 입력값, output 출력값을 모두 보여주며 학습시킨다.
- 입출력값을 정해주는 라벨링, 레이블링 labeling/ 어노테이션 Annotation 작업이 필요함
- Regression 회귀 - 연속적인 문제를 예측하도록 함
integer/ float으로 값을 출력하며 주로 float을 사용한다
ex. 사진에서 나이값 예측 - Classification 분류 - 불연속적인 문제를 예측하도록 함
- 이진 분류 Binary classification
ex1. 공부시간으로 Pass(1), Fail(0) 예측
- 다중 분류 Multi-class(-label) classification
ex2. 공부시간으로 A,B,C,D,F 성적 예측
-> 어떤 방법을 사용하느냐에 따라 코드 구성이 달라지게 된다
- Unsupervised Learning 비지도학습 : input값만 제시, 정답을 알려주지 않고 clustering (군집화)
- 출력값에 해당하는 데이터가 없을 때 사용한다.
ex. 음원 장르 분류
- Reinforcement Learning 강화학습 : 행동심리학 용어. 자신이 한 행동에 대해 보상을 받으며 학습한다 (데이터x 정답도 x)
- Agent 에이전트
- Environment 환경
- State 상태
- Action 행동
- Reward 보상
- 대표적인 예시 : AlphaGo
- ex. 게임 학습
- 규칙입력 없이 시작
- Agent가 Environmet에서 Action하며 State(현재 상태) ~ Reward(높은 점수) 얻는 방법을 찾아간다
- 특정 학습 횟수를 초과하면 높은 점수를 얻는 전략이 형성된다 - 만약 지도학습의 classigication으로 학습하면 모든 상황에대한 예측값과 결과값이 필요하므로 방대한 데이터량이 필요함!
- 선형회귀 Linear regrssion
회귀문제를 선형적으로 예측하는 방법 (직선 하나 그래프!)
모든 문제를 선형으로 풀 수 있다고 가정하는 것이 선형회귀
W, b값을 바꾸어가면서 cost가 작아지는 방향으로 기계를 학습시켜야한다.
+ 다중선형회귀 Multi-variable Linear regression : 입력값이 여러개일때 사용한다. 고차원함수!
- H(x) = Wx+b
1차함수를 생각해보자. W weight는 기울기, b는 y절편 - Hypothesis : 가설. 머신러닝에서는 모든 문제에 가설이있다고 가정한다
이 가설에 가까운 값을 얻을 수록 정답에 가까운 것! - 손실함수 cost function , loss function
정답과의 거리를 계산하여 값을 산출 (거리가 멀 수록 부정확하고 거리가 가까울 수록 정확하게 예측했다고 보여진다)
mean squared error : 평균 제곱 오차
그러므로 손실함수는 지표!! = 임의의 직선과 정답의 거리가 가까워지도록 해야함!
- 경사하강법 Gradient descent method
쉽게말해서, 경사를 정해둔 러닝레이트만큼씩 하강하며 minimum값을 찾는 방법.
- H(x) = Wx+b
W, b 값을 변화시켜가면서 최소 cost(손실함수)까지 도달함 - Learning rate 한 칸씩 전진하는 단위.
- 러닝레이트의 크고 작음에 따라 학습시간이 달라진다.
값이 너무 작으면 학습시간이 매우 길어지고, 너무 크면 진동 및 발산하여 무한대 값을 표시하는 등의 문제가 생기기도 함
= 적절한 러닝레이트를 찾기위해 자주 값을 바꾸어가며 시도해보고, 찾아내는 노력이 필요하다
*** 손실함수는 그릴 수 없다!
간단한 선형회귀문제는 그래프를 그리는 것이 가능하지만
보다 복잡한 가설을 세울 경우 사람이 그리기도 상상하기도 힘든 형태가 된다.

최종적으로 얻고자 하는 Global minimum.
구성에 따라 local minimun에 빠지는 오류가 생기기도 한다.
머신러닝 엔지니어의 역할은
최대한 Global minimum을 찾기위해 좋은 가설과 손실함수를 만들어 기계가 잘 학습하도록 하는 것이다!
느낀점:
수학적 개념이 신선하고 재밌다
하지만 그만큼 이해에 시간이 오래 걸린다... 내일까지 다 듣고 딥러닝 시작하고 싶다..
'AI 웹개발반 > AI' 카테고리의 다른 글
[AI] Chatgpt-3.5 와 DRF로 챗봇 만들기 - 2 - (0) | 2023.07.05 |
---|---|
[AI] Chatgpt-3.5 와 DRF로 챗봇 만들기 - 1 - (0) | 2023.07.03 |
[AI] 머신러닝 개념 정리(2) **수정중 (0) | 2023.05.19 |