AI

주재걸 교수님의 인공지능 개론

with_AI 2022. 4. 5. 13:06

인공지능

  • 사람 없이는 하기 어려운 일을 사람이 없어도 할 수 있게 하는 모든 종류의 기술

 

기계학습

  • 인공지능을 가능하게 하는 방법론이 기계학습이고, 학습데이터를 확보, 준비해야함.

 

딥러닝

  • 딥러닝은 기계학습의 세부 방법론으로서, 두뇌가 동작하는 과정을 본따서 기계학습의 한 종류를 만든것

 

 

인공신경망

  • 인간 두뇌에 존재하는 신경세포의 동작과정을 모방하여 이를 인공지능 알고리즘으로 동일하게 동작하게 구현한 기술.

순전파: 전기물질을 본따서 수식으로 이 입력신호들이 여러단계를 거쳐서 뉴런들을 통해 최종적인 정보를 얻는 것

 

역전파 : 학습데이터가 나타내는 목적에 대해서 각각의 뉴런들이 어떻게 정보를 변환해야하는지 학습하는 것

 

 

Deep Neural Networks

  • 인공신경망의 계층을 많이 쌓음으로써 인공지능 기술의 정확도를 획기적으로 향상 시킴
  • H/W의 발전으로 최근에서야 많은 데이터, 알고리즘 고도화, GPU 가속이 가능해져서 딥러닝이 더욱 발전하게 됨.
  • CPU와 GPU는 코어 갯수가 다르다. 코어의 갯수가 많을 수록 병렬 처리가 가능해진다.
  • CPU는 하나의 코어가 powerful하지만, 많이 담기긴 어렵다, 하지만 GPU의 하나의 코어는 할 수 있는게 하나밖에 없지만 Die(칩)안에 많이 담길 수 있다. 따라서 GPU안에 수백 개를 담아낼 수 있는 것이다.
  • GPU는 행렬간의 곱 연산에 최적화 돼어 딥러닝에 쓰이고 있다.

 

 

데이터가 많을 수록, 축적할수록 대규모 데이터일 수록 딥러닝이 전통적인 기계학습보다 성능(정확도)이 좋다

 

왜 초반엔 전통적인 머신러닝이 성능이 좋은지?

  • 학습이라는 과정에서, 최적화를 해야되는 파라미터 갯수가 있는데,
  • 딥러닝이 아닌 기계학습은 적은 파라미터 갯수로만 구성하면 복잡한 기능을 하지는 못함, 하지만 학습 속도는 빠름

 

딥러닝과 머신러닝의 장단점 & 차이점

  • 딥러닝은 계산해야 하는 파라미터 갯수가 많아서 고도화된 기능을 할 수 있고, 데이터가 많이 필요함
  • 딥러닝은 feature을 결정해야하는 feature engineering이 필요하지 않음
  • 학습데이터가 많이 않은 경우에는 전통적인 ML이 더 성능이 좋은 경우가 있다.
  • 무턱대고 딥러닝을 쓴다고 해서 성능이 좋은것은 아니다.
  • 딥러닝이 특히 더 잘하는 분야가 있음, 영상, 음성, 자연어, 시계열 예측, 미세먼지 예측, 강수량 예측, 이런 분야에서 딥러닝이 뛰어난 성능을 가짐

 

기계학습의 입력 데이터

  • 첫번째 단계로 다양한 분야에 기계학습을 적용하기 위해, 다양한 형태의 데이터를 먼저 숫자로 나타내야 한다. 
  • 구체적으로는 , 다차원 벡터나 그래프 형태의 데이터로 나타내야 한다.
  • 영상 데이터는 이미지의 RGB 픽셀값을 갖게 된다.
  • 차원수가 상당히 많은 데이터다

 

 

텍스트 데이터는 Bag-of-words vector 라는 표현형을 쓴다.

 

Graph/Network Data

  • 기계학습의 또다른 입력 데이터의 형태
  • 누가 어떤 영화를 봤는지에 대한 정보
  • 누가 어떤 상품을 샀는지에 대한 정보
  • 누가 누구와 친구 관계인지에 대한 정보
  • 흔히 부르는 추천 시스템에서 필요한 데이터임

 


기계학습의 다양한 task

지도학습

  • 회귀 모델
  • 분류 모델

 

비지도 학습

  • 군집 모델

 

 

모델 학습 및 검증 방법

  • 7:3으로 학습데이터와 테스트 데이터로 데이터를 나눈다.
  • 입력 feature 정보와 그들의 target label을 기계학습 모델의 학습 데이터로 사용한다.
  • 모델은 내부적으로 어떤 feature가 target label을 예측하는데 중요한지를 판단하여, 주어진 모든 feature를 조합하여 target label을 에측한다.
  • 이를 테스트 데이터를 대상으로 얼마나 잘 맞추는지 테스트한다.
  • 검증용 데이터가 없으면 모델의 성능을 판단할 수 없다. 따라서 데이터를 사전에 나누고 학습한다.
  • 딥러닝에서는 어떤 feature를 넣을것인가, feature Engineering없이도 딥러닝이 알아서 target value를 도출 잘해서 사용한다.

 


 

Gradient Descent

  • 손실함수이고, 조금씩 값을 업데이트해가며, 최종적으로 최소값을 찾아 나가는 알고리즘을 gradient descent 라 한다.
  • 그러나 초기값에 따라 다른 local minimum으로 수렴할 수도 있다.
  • global minimum으로 가기 위해서 변조 알고리즘인 ADAM을 사용한다. 기본적으로 ADMA은 빠르다.
  • 러닝 레이트 값을 사전에 결정하고 항상 같은 값을 채택하는데 처음엔 크게 하고 나중엔 값을 줄이는 방식을 채택한다.
  • 반복횟수도 줄일 수록 학습을 빠르게 할 수 있는 변조 알고리즘이 존재한다.

 

로지스틱 회귀

  • 분류 문제의 경우 이전의 linear regression 의 출력값이 −∞ 에서 +∞ 까지 나타날 수 있으므로, 이 값을 sigmoid 함수를 통과하여, 0에서 1사이의 값으로 변환한다.
  • 따라서 0과 1의 분류문제를 풀 수 있게 된다.

 

HeatMap

  • 블랙박스인 딥러닝 Vision task에서 이미지 추론의 결과가 어느부분에서 강하게 반응하고 있는지, 어느 부분을 보고 추론했는지를 볼 수 있는 2D이미지 시각화 기법이다.
  • CAM GRADCAM, 과 같은 많은 heatmap 알고리즘이 존재하고 있다.
  • heatmap의 값을 도출하는 수식이나 기법들이 많이 존재하는것이다.

 

MLOPS

  • 머신러닝 모델을 서비스에 적용하는 전체 파이프라인을 다룸
  • 실제로 딥러닝 모델을 프로그램으로 짜고, 그 모델을 학습해서 성능을 높이는 과정은 전체 과정 중 작은 일부만을 차지함
  • 그 보다는 학습 데이터의 확보 및 정제, 라벨링, hyperparameter tuning, 딥러닝 하드웨어 구성, 모델 개인화 및 경량화, 새로운 데이터에 대한 active learnging 기반의 추가 학습 등의 다양한 다른 과정이 훨씬 더 중요 해짐
  • 모델이 아무리 좋아도 좋은 데이터 즉 양질의 데이터가 중요해짐
  • 인공지능 알고리즘이 100%의 성능은 못낸다, 일단 완전하지는 않지만 90%의 성능을 서비스에 적용하고 본다.
  • 서비스 과정 중에 모델이 잘 예측을 못하는 경우, 실패하는 경우를 사후에 모델의 유지 보수 관점에서 왜 안되는지를 파악해서 모델을 고도화하는 과정을 거친다.
  • 모델 경량화, 배포, serving, 모델을 사용자 스마트폰 환경에서 돌릴지, 이런것들을 결정하는게 MLOPS가 된다.