본문 바로가기

AI

AICE 준비 - AI개념

인공지능(AI)

: 인간의 지적능력(추론, 인지)을 구현하는 모든기술

 

머신러닝(ML)

: 알고리즘으로 데이터를 분석하고 학습하여 판단이나 무언가를 예측하는 기술

 

  • 선형회귀
  • 로지스틱회귀
  • K-최근접 이웃
  • 결정트리
  • 랜덤포레스트
  • 서포트 벡터 머신

딥러닝(DL)

: 인공신경망의 알고리즘을 활용한 머신러닝 기술

 

  • 심층신경망(DNN)
  • 합성곱 신경망(CNN)
  • 순환신경망(RNN)
  • 강화학습(Reinforcement Learning)

 

머신러닝

 

 

지도학습(Supervised Learning) 비지도학습(Unsupervised Learning) 강화학습(Reinforcement Learning)
데이터/정답을 제공하여 학습시키고 분류 및 예측을 진행하는 방식

예:) A는 B야 이렇게 학습 후 문제내는 것과 동일한 느낌(오픈북)
정답없이 학습시키는 방식으로 군집화, 특성 도출, 카테고리 분류 등이 있음

예:) 신문기사 한 뭉텅이를 던져주고는 Topic을 잘 분류해서 나눠보라고 하는것
시뮬레이션을 반복해서 학습하고 기존 성능을 
더 강화하는데 사용

예:) 게임 (보상은 많이 받고 싶으나, 처벌은 적게 받고 싶음 = 기존 성능 강화)

 

AI 모델 구성요소

  1) 데이터

  2) 모델링

 

개발 라이브러리: Pandas, Numpy

개발 언어: Python, Java

개발환경 IDE: Anaconda, VSCode

HW: CPU, GPU, Memory, Disk

 

AI 모델 구성요소 중 데이터는 데이터 수집과 수집된 데이터를 컴퓨터가 알아먹을 수 있도록 0, 1로 표현하며 이상치 데이터도 표현하는 등 정리 과정을 거치는 작업을 말합니다.

모델링은 정리된 데이터를 토대로 예상치를 반환해내는 모델, 스키마를 만드는 것이라 보면 됩니다.

뒤에 이어서 설명하겠지만, 모델링에 나온 데이터와 테스트 데이터를 비교하면서 모델의 성능을 최대치로 높이고 결과값에 수렴해진 좋은 모델에 대해서는 배포하는 과정을 거칩니다.   이를 Optimizer, 최적화 알고리즘이라고 합니다. 

 


파이썬 개발 IDE

  • IDLE
  • ATOM
  • SPYDER
  • Pycharm
  • Jupyter
  • Anaconda
  • VSCode
  • Google Colaboratory (인터넷으로 사용 가능한 Jupyter 노트북 -> 모델 학습가능)

 

주요 사용 라이브러리

  • Numpy: 행렬과 다차원 배열을 쉽게 처리할 수 있게 해주는 패키지
  • Pandas: 데이터를 처리하고 분석하는 효과적인 패키지
  • Matplotlib: 데이터를 차트나 플롯으로 그려주는 시각화 라이브러리 패키지
  • Seaborn: Matplotlib을 기반으로 다양한 색상테마와 통계용 차트등의 기능을 추가한 시각화 패키지
  • Scikits learn: 교육 및 실무를 위한 머신러닝 라이브러리 패키지
  • Tensorflow: 구글에서 만든 오픈소스 딥러닝 라이브러리 패키지

 

AI 학습 원리

 1) AI 모델 목표

  : 모델에 입력값을 넣었을 때의 출력값(예측값)이 최대한 정답과 일치하게 하는 것

 2) 비용함수

  : 출력값(예측값)과 정답과의 차이를 COST, LOSS, ERROR라고 하는데 이 차이를 줄여 정답에 가깝게 하는 함수

 3) Optimizer: 최적화 알고리즘

  : 비용함수에서 구한 COST를 최소로 줄이는 알고리즘으로, 모델의 파라미터를 업데이트하면서 최적의 모델을 생성하는 과정

 

AI 모델 학습의 목표
= 정답과 예측값을 최대한 일치시키기

모델의 비용함수 구하기
= 모델 파라미터를 업데이트하며 비용을 최소화 시킬 것

비용이 0에 수렴 -> 정답과 예측값이 수렴해간다 = 최적화 알고리즘(Optimizer)

AI 모델링 순서

 1) 데이터 수집

 2) 데이터 정리 --> 테스트 데이터셋에 테스트 데이터도 넣어주기

 3) 모델 학습시키기

 4) 모델 테스트

 5) 모델 배포

 

1)과 2)는 전체 모델링 과정에서 약 70%를 차지하며, 수집한 데이터도 중요하지만 전처리 작업을 통해 컴퓨터가 이해할 수 있도록

정리하는 과정도 중요합니다.

이후에는 훈련할 데이터를 모델에게 전달하고 규격에 맞춰 훈련을 시킵니다.

테스트할 데이터는 데이터 정리 과정에서 테스트 데이터셋에 입력받아 관리합니다.

훈련할 데이터를 모델에게 제공하여 학습한 다음 그 결과를 테스트 데이터셋에 있는 테스트 데이터와 비교합니다.

이 과정으로 모델이 좋은지 안좋은지를 평가하고 성능이 잘 나올 수 있도록 모델에 다시 테스트한 데이터를 넘겨서 반복작업을 거칩니다.

성능이 잘 나올 수 있도록 하는 과정에서는 a) 하이퍼 파라미터 튜닝 b) Feature Engineering 이 있습니다.

이러한 절차를 반복하여 성능이 좋은 모델이 나오면 이를 배포하여 모델링 스키마로 활용합니다. 

모델링을 통해 나온 데이터는 시각화하여 여러 분야에서도 많이 활용되게 됩니다. 

 

AI 모델링 과정

 

 

지금까지가 AI의 이론적인 내용을 다루어봤고 향후에는 실습에 대해서 정리하며 심화 내용을 다루도록 하겠습니다.

감사합니다.

반응형