티스토리 뷰

인공지능(AI, Artificial Intelligence)

: 인간의 학습능력과 추론능력, 언어이해능력을 컴퓨터 프로그램으로 실현하는 학문 또는 기술입니다. 사람의 지능과 마찬가지로 '문제해결능력', '학습', '범용성'의 세 가지 특징을 가지고 있다.

 

1. 문제해결능력

: 수식 계산, 사진 속 대상 판단, 알파고의 바둑판을 이해하고 다음 수를 결정하는 것 등 문제를 해결하기 위한 지능적인 행동을 의미한다.

 

2. 학습

: 과거에는 지능을 구현하기 위해 사람이 직접 모든 프로그램을 작성했지만 복잡해질 경우 사람이 설계하는 것이 불가능하여 이를 해결하기 위해 입력과 출력의 데이터가 주어지면 규칙을 자동으로 파악하는 모델인 '머신러닝'과 '딥러닝'을 만들었다.

 

3. 범용성

딥려닝 모델을 수정하여 다양한 분야에서 응용이 가능한 인공지능이 특징이다.

 

인공지능(AI) vs 머신러닝(Machine Learning) vs 딥러닝(Deep Learning)

인공지능이 가장 넓은 개념이며, 인공지능을 구현하는 대표적인 방법 중 하나가 머신러닝이다.

딥러닝은 머신러닝의 여러 방법 중 하나의 방법론으로 인공신경망의 한 종류이다.

 

1. 머신러닝(Machine Learning)

: 사람이 할 수 있거나 또는 하기 어려운 작업을 대신 수행할 기계를 학습을 통해 만들어내는 일련의 작업을 의미한다. 사람이 직접 프로그래밍할 필요 없이 대량의 데이터를 접했을 때 스스로 수정하여 원하는 결과를 얻기 위한 기술이다.

 

[전통적인 프로그래밍]

규칙 + 데이터 => 해답

 

[머신러닝]

데이터 + 해답 => 규칙

 

머신러닝은 지도학습, 비지도학습, 강화학습의 세가지 종류로 나눌 수 있다.

 

1) 지도학습(Supervised Learning)

: 입력값과 결과값(정답 레이블)을 함께 주고 학습시키는 방법이다. 분류/회귀 등 여러 가지 방법에 활용된다. 주로 과거 데이터를 기반으로 앞으로 있을 이벤트를 예측한다.

 

2) 비지도학습(Unsupervised Learning)

: 결과값 없이 입력값만 주고 학습시키는 방법. 데이터를 탐색하여 내부 구조와 유사한 속성을 파악한다. 유사한 속성의 고객을 분류하고, 유사성을 근거로 마케팅 켐페인에서 고객 세그먼트를 관리하거나 고객 세그먼트 구분 기준이 되는 주요 속성을 파악하는데 효과적이다.

 

3) 강화학습(Reinforcement Learning)

: 결과값이 아닌 어떤 일을 잘했을 때 보상(Reward)을 주는 방식으로 어떤 행동(Action)이 최선인지를 학습시킨다.

 

2. 딥러닝(Deep Learning)

: 머신러닝과 비슷한 개념이다. 머신러닝은 학습에 필요한 데이터를 수동으로 제공해야 하지만, 딥러닝은 분류에 사용할 데이터를 스스로 학습할 수 있다. 딥러닝은 머신러닝에 속하는 대표적인 방법론 중에 하나로 앞서 언급된 3가지 머시러닝 방법론 모두에 이용될 수 있다.

 

[딥러닝]

= 알고리즘 (기존 신경만 한계 극복) + Big Data(풍부한 학습데이터) + H/W 발달(GPU 능력향상→ 신경망 계산량↑)

 

3. 심층신경망 (Deep Neural Network)

매우 많은 은닉층의 심층적인 신경망을 통한 학습

- 입력층: 초기의 데이터가 세팅된 뉴런층

- 은닉층: 데이터가 가져진 뉴런층

- 출력층: 얻고자 하는 데이터가 담긴 뉴런층

 

4. 합성곱 신경망 (CNN, Convolutional Neural Network)

: Convolution과 Pooling을 반복적으로 사용하면서 불변하는 특징을 찾고, 그 특징을 입력데이터로 Fully-connected 신경망에 보내 Classification을 수행하는 것이다.

  • 인간의 시신경 구조를 모방한 기술
  • 특징맵을 생성하는 필터까지도 학습이 가능해 비전(vision) 분야에서 성능이 우수함
  • 이미지를 인식하기 위해 패턴을 찾는데 특히 유용
  • 데이터를 직접 학습하고 패턴을 사용해 이미지를 분류함
  • 자율주행자동차, 얼굴인식과 같은 객체인식이나 computer vision이 필요한 분야에 많이 사용되고 있음
  • 이미지의 공간 정보를 유지한 채 학습을 하게 하는 모델(1D로 변환하는 것이 아닌 2D 그대로 작업함)
  • 사람이 여러 데이터를 보고 기억한 후에 무엇인지 맞추는 것과 유사함.

CNN 모델의 구조

이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델.

CNN은 위 이미지와 같이 이미지의 특징을 추출하는 부분과 클래스를 분류하는 부분으로 나눌 수 있다. 특징 추출(Feature extraction/learning) 영역은 Convolution LayerPooling Layer를 여러 겹 쌓는 형태로 구성된다. Convolution Layer는 입력 데이터에 필터를 적용 후 활성화 함수를 반영하는 필수 요소이다. Convolution Layer 다음에 위치하는 Pooling Layer는 선택적인 레이어이다.

CNN 마지막 부분에는 이미지 분류(Classification)를 위한 Fully Connected Layer가 추가된다. 이미지의 특징을 추출하는 부분과 이미지를 분류하는 부분 사이에 이미지 형태의 데이터를 배열 형태로 만드는 Flatten 레이어가 위치한다.

 

[CNN의 파라미터]

  • Convolution Filter의 개수 // 각 Layer에서의 연산시간/량을 비교적 일정하게 유지하며 시스템의 균형을 맞추는 것이 좋다.
  • Filter의 사이즈 // 작은 필터를 여러 개 중첩하면 원하는 특징을 더 돋보이게 하면서 연산량을 줄일 수 있다.
  • Padding 여부 // Padding은 Convolution을 수행하기 전, 입력 데이터 주변을 특정 픽셀 값으로 채워 늘리는 것이다. Padding을 사용하게 되면 입력 이미지의 크기를 줄이지 않을 수 있다.
  • Stride // Filter의 이동 간격을 조절하는 파라미터이다. 이 값이 커지게 되면 결과 데이터의 사이즈가 작아지게 된다.
  • Pooling layer 종류 // 적당히 이미지 크기를 줄이면서 특정 feature를 강조하는 역할을 한다. 주로 Max 값을 뽑아내는 종류를 사용한다.

1) Convolution Layer

 - color 이미지는 높이*너비*채널의 3차원 텐서(tensor)로 표현될 수 있다. 만약, 이미지 색상이 RGB 코드로 표현되었다면, 채널의 크기는 3이 되며 각각의 채널에 R, G, B 값이 저장된다.

- 하나의 합성곱 계층에는 입력되는 이미지의 채널 개수만큼 필터가 존재하며, 각 채널에 할당된 필터를 적용함으로써 합성곱 계층의 출력 이미지가 생성된다.

- 이미지에 대해 필터를 적용할 때는 필터의 이동량을 의미하는 스트라이드를 설정해야 한다.

- 입력 이미지에 대해 합성곱을 수행하면, 출력 이미지의 크기는 입력 이미지의 크기보다 작아지게 된다. 그러므로 합성곱 계층을 거치면서 이미지의 크기는 점점 작아지게 되고, 이미지의 가장자리에 위치한 픽셀들의 정보는 점점 사라지게 된다. 이러한 문제점을 해결하기 위해 이용되는 것이 패딩(padding)이다. 패딩은 입력 이미지의 가장자리에 특정 값으로 설정된 픽셀들을 추가함으로써 입력 이미지와 출력 이미지의 크기를 같거나 비슷하게 만드는 역할을 수행한다.

 

2) Pooling Layer

: 이미지의 크기를 계속 유지한 채 Fully Connected layer로 가게 된다면 연산량이 기하급수적으로 늘 것이다. 적당히 크기도 줄이고, 특정 feature를 강조할 수 있어야 하는데 그 역할을 Pooling layer에서 한다.

 

[처리방법]

  • Max Pooling
  • Average Pooling
  • Min Pooling

CNN에서는 주로 Max Pooling을 사용한다. 노이즈가 감소하고 속도가 빨라지며 영상의 분별력이 좋아지기 때문이다.

이미지 데이터의 특징은 인접 픽셀들 간의 유사도가 매우 높다는 것이다. 따라서 이미지는 픽셀 수준이 아니라, 특정 속성을 갖는 선택 영역 수준으로 표현될 수 있으며, Pooling layer은 이미지 데이터의 이러한 특징을 바탕으로 설계되었다. CNN에서는 이러한 Pooling layer을 이용함으로써 1. 선택 영역 내부에서는 픽셀들이 이동 및 회전 등에 의해 위치가 변경되더라도 출력값은 동일하기 때문에 이미지를 구성하는 요소들의 이동 및 회전 등에 의해 CNN의 출력값이 영향을 받는 문제를 완화할 수 있다. 2. CNN이 처리해야하는 이미지의 크기가 크게 줄어들기 때문에 인공신경망의 model parameter 또한 크게 감소한다. 따라서 CNN의 학습 시간을 크게 절약할 수 있으며, 오버피팅(overfitting) 문제 또한 어느정도 완화할 수 있다. 는 이점을 얻을 수 있다.

 

3) Fully Connected Layer

이전까지는 '특징 추출'을 위한 작업이었고, 그 다음부터는 분류 작업이다. 이미지 특징을 추출하여 이것이 무엇을 의미하는 데이터인지 분류 작업하는 것이다.

 

  • Flatten Layer: 데이터 타입을 Fully Connected 네트워크 형태로 변경. 입력 데이터의 shape 변경만 수행.
  • Softmax Layer: Classification 수행

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함