CNN을 통해 배우는 이미지 인식 인공지능 기술 1. 인공지능 기술 및 CNN의 개요
CNN(Convolution Neural Network)을 통해 배우는 이미지 인식 인공지능 기술
1. 인공지능 기술 및 CNN의 개요
나동빈
인공지능: 컴퓨터가 인간의 지능을 흉내내도록 하는 기술
최근의 인공지능 기술은 경험주의에 기반하고 있습니다. 사람이 컴퓨터에게 별도의 지식을 제공하지 않아도 컴퓨터가 데이터로부터 지식을 직접 학습할 수 있다고 보는 관점입니다. 오직 컴퓨터가 데이터라는 경험만을 이용하여 수식(Function)을 찾아냅니다. 실제로 이러한 접근 방법이 최근 딥 러닝(Deep Learning) 기술까지 이어졌습니다.
현재 인공지능은 데이터로부터 스스로 학습하는 단계까지는 왔다고 말할 수 있지만 초월적인 지능으로 새로운 발견을 하는 단계가 되기까지는 한참 멀었다고 보는 것이 일반적입니다.
※ 머신러닝 인공지능의 분류 ※
1) 지도학습(Supervised Learning): 학습 데이터가 정답 정보인 레이블(Label)을 가지고 있도록 하는 학습 방법입니다.
→ 딥 러닝이 대표적인 예시이며, 우리가 공부하게 될 CNN도 지도학습에 속합니다.
2) 비지도학습(Unsupervised Learning): 학습 데이터가 레이블을 가지고 있지 않도록 하는 학습 방법입니다. 데이터 자체에 들어있는 고유한 특징을 스스로 찾아냅니다.
→ 대표적인 기술로는 비슷한 데이터끼리 묶는 클러스터링(Clustering)이 있습니다.
→ 레이블이 없다는 점에서 지도학습보다 더 난이도가 높은 경우가 많습니다.
3) 준지도학습(Semi-Supervised Learning): 학습 데이터가 어느 정도만의 레이블을 가지고 있도록 하는 학습 방법입니다.
4) 강화학습(Reinforcement Learning): 학습의 정답 유무를 출력하기까지 시간이 필요한 학습 방법입니다. 주로 게임(Game) 인공지능으로 활용됩니다.
→ 바둑(Go) 인공지능과 같은 게임 인공지능이 대표적인 예시이며 전략적인 상황에서 활용도가 높습니다.
※ 컴퓨터 비전(Computer Vision) ※
컴퓨터 비전 기술은 컴퓨터의 시각(Vision) 요소에 관련한 기술을 연구하는 분야입니다. 증강현실, 문자 인식, 패턴 인식, 얼굴 인식, 이미지 복구, 가상현실 등의 세부 분야가 있습니다. 우리가 공부하게 될 CNN도 대표적인 컴퓨터 비전 분야의 기술입니다.
※ 머신러닝 데이터의 분류 ※
머신러닝은 인공지능 알고리즘 중 하나이며 대표적인 경험주의적 철학이 반영된 알고리즘입니다. 이러한 머신러닝에서 사용되는 데이터는 다음과 같이 세 가지로 분류될 수 있습니다.
· 훈련 데이터: 모델의 학습을 위해 사용하는 데이터입니다. 예를 들어 특정한 이미지가 주어졌을 때 미리 그 이미지가 '말'에 해당하는지, '소'에 해당하는지 등의 정답 데이터를 준비해놓고 학습을 진행합니다.
· 검증 데이터: 모델의 검증을 위해 사용하는 데이터입니다. 학습이 잘 되었는지 판단하기 위한 중요한 척도가 됩니다.
· 테스트 데이터: 주로 현재 가지고 있지 않은 데이터로 실제로 인공지능 소프트웨어를 운영하면서 만나게 될 데이터를 의미합니다.
일반적으로 전체 데이터를 훈련 데이터와 검증 데이터로 나누어서 먼저 훈련을 시키고, 나중에 검증을 하는 방식으로 데이터를 활용합니다. 일반적으로 학습 모델을 표현하고자 할 때는 '신경망 모델(Neural Network Model)'을 이용해 표현합니다. 여러 개의 노드(Node)가 서로 연결되어 있는 그래프 형태로 표현합니다. 대부분의 딥 러닝 알고리즘은 신경망 모델을 이용해 표현됩니다.
※ 학습 모델의 평가 ※
일반적으로 모델을 평가할 때는 해결하고자 하는 문제에 따라서 다른 모델 평가 방식을 적용할 수 있습니다. 가장 많이 사용되는 평가 방식은 다음과 같습니다.
· 회귀 문제: {y - f(x)}^2의 합으로 모델을 평가합니다. f(x)는 각 데이터에 대한 모델의 예측 값을 의미합니다. y는 실제 정답 값을 의미하는데, 제곱을 해주는 이유는 모델이 예측한 값이 얼마나 실제 정답과 거리가 있는지를 양수로 표현하기 위해서입니다.
· 정확도: 전체 테스트 데이터의 개수가 N개 일 때, 정답을 맞힌 테스트 데이터의 개수가 K개라면 K/N이 정확도가 됩니다.
※ CNN(Convolution Neural Network) ※
일반적인 신경망 기술로는 해결하기 어려운 문제인 '이미지' 문제를 해결하기에 적합한 인공지능 알고리즘입니다. CNN은 1989년 LeCun의 필기체 인식 알고리즘으로 처음 등장하여 2000년대부터 본격적으로 관심을 받아 지속적으로 개선이 이루어지고 있습니다.
'인공지능' 카테고리의 다른 글
파이썬(Python) Pandas의 활용 (0) | 2018.12.08 |
---|---|
파이썬(Python) Pandas의 연산과 함수 (0) | 2018.12.08 |
파이썬(Python) Pandas의 기본 사용법 (0) | 2018.12.08 |
파이썬(Python) Numpy의 연산과 함수 (0) | 2018.12.08 |
파이썬(Python) Numpy의 기본 사용법 (0) | 2018.12.08 |