본문 바로가기
AI 웹개발반/AI

[AI] 머신러닝 개념 정리

by 째깍단 2023. 5. 17.

오늘 한 것

 

[O] : 머신러닝 시작하기

 

 

 

 

** 최신경향 논문 사이트! ***

https://paperswithcode.com/sota

 

 


딥러닝 ⊂ 머신러닝 ⊂ "인공지능"

 

머신러닝의 시작 : 

 사람들이 미래를 예측하기 위해 수학 통계학을 활용하기 시작함

 

-> 컴퓨터를 작업에 사용하기 시작

  • 컴퓨터의 발전
  • 반복작업에 유리함
  • 사람보다 빠름

 

예측 값이 예상 범위를 벗어나는 문제가 발생했고, 컴퓨터에게 학습을 시켜보자는 논의가 이루어지며 머신러닝이 시작되었다!

 

 

 

 

 

머신러닝 Machine Learning

 

 

출처: https://towardsdatascience.com/the-future-with-reinforcement-learning-877a17187d54  / 강의자료에서 가져옴!

 

 

 

 

- 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 한 칸씩 전진하는 단위. 
     - 러닝레이트의 크고 작음에 따라 학습시간이 달라진다.
        값이 너무 작으면 학습시간이 매우 길어지고, 너무 크면 진동 및 발산하여 무한대 값을 표시하는 등의 문제가 생기기도 함
     = 적절한 러닝레이트를 찾기위해 자주 값을 바꾸어가며 시도해보고, 찾아내는 노력이 필요하다

 

 

 

 

*** 손실함수는 그릴 수 없다!

간단한 선형회귀문제는 그래프를 그리는 것이 가능하지만

보다 복잡한 가설을 세울 경우 사람이 그리기도 상상하기도 힘든 형태가 된다.

출처: https://regenerativetoday.com/logistic-regression-with-python-and-scikit-learn/            / 강의자료

 

최종적으로 얻고자 하는 Global minimum.

구성에 따라 local minimun에 빠지는 오류가 생기기도 한다.

 

 

 

 

 

머신러닝 엔지니어의 역할은

최대한 Global minimum을 찾기위해 좋은 가설과 손실함수를 만들어 기계가 잘 학습하도록 하는 것이다!

 

 

 

 


느낀점:

수학적 개념이 신선하고 재밌다

하지만 그만큼 이해에 시간이 오래 걸린다... 내일까지 다 듣고 딥러닝 시작하고 싶다..