인공지능 AI 74
-
https://teddylee777.github.io/scikit-learn/scikit-learn-ensemble 머신러닝 실전 앙상블 (Ensemble)과 Hyperparameter 튜닝 머신러닝 실전 앙상블 (Ensemble)과 Hyperparameter 튜닝에 대해 알아보겠습니다. teddylee777.github.io 글을 참고하여 보스턴 주택가격 예측을 Linear Regression으로 만들었다. Final로 예측한 결과에서 에러율을 5.354까지 낮췄다. GridSearch로 Hyperparameter 전체 탐색으로 에러율을 더 낮출 수 있었다. 또 GradientBoosting을 사용했을 때 Learning Rate를 0.1로 해놓아서 당연히 줄여야 에러율이 줄거라고 생각했지만 0.2부터..
-
GAN 생성모델에서의 Loss Function Fixed Loss 고정된 손실함수의 문제점은 한가지 목표만을 향해서 간다는 점이다. 시간이 지나거나 새로운 기준이 생긴다면 목표를 변경해야 좋은 결과를 낼 수 있다. 하지만 한가지 목표를 고정한 Fixed Loss는 경쟁과는 거리가 멀다. Fixed Loss를 사용하는 이미지 컬러라이징 모델을 학습시키면 L2 Loss에서 색이 바래는 현상이 나타난다. 빨간 값과 파란 값의 중간 평균을 내서 덧칠했기 때문에 색이 연해진 것이다. 해상도를 높이는 수퍼 레졸루션 모델에서도 평균을 내다가 뿌연 사진을 명확하게 만들지 못했다. 고정된 목적을 달성하는 것은 단점이 있다. Universal Loss 고정된 손실값이 아닌 자유롭게 변화하는 손실값을 사용한다. 고정된 Lo..
-
생성 모델 GAN Generative Adversarial Network 적대적으로 성능 경쟁을 하면서 생성한다. Generator는 가짜를 만들어내고, Discriminator는 이것이 실제인지 가짜인지 판독한다. 이런 과정을 거치면서 더 정교한 가짜를 만들어내고, 더 정확한 감정을 해낸다. 위조의 능력이 판독의 역할을 넘어서면 가짜인지 진짜인지 구분할 수 없는 상태가 된다. 이전까지의 영상 생성은 확률모델에 기인해왔다. PDF probability density function 사건의 발생 확률을 나타내었다. 이 확률 분포를 가지고 샘플을 나타내보면 0 주변에 발생할 확률이 높고 양쪽으로 퍼질 수록 나타날 확률이 줄어든다. 만약 그림과 같은 다차원의 영상에서 PDF를 나타낸다면 (4, 1) 벡터보다 ..
-
Mask-RCNN 객체탐지와 의미론적 분할을 결합한 형태의 가장 진화한 학습 모델이다. 물체를 찾고 그 물체가 무엇인지 판단하며 의미론적 분할을 화면상에서 시도한다. Faster RCNN과 FCN를 동시에 적용한다. 사람 별로 구분이 가능하고 픽셀 정보를 얻을 수 있다. RCNN의 Roi pooling을 Roi Align으로 바꾼 형태이다. 컨볼루션의 수를 조정할 수 있다. 고양이들의 위치가 표시되고 있다. pooling을 통해 값이 작아졌고 위치가 좌표 픽셀 하나에 매칭되는 것이 아니라 중간에 걸쳐있는 소수점 부분에 매칭되게 된다. 이 소수점 부분은 버림을 해서 실제보다 작은 사이즈의 박스를 만들게 된다. 파란 부분과 초록 부분만큼 정보의 소실이 생긴다. 여기에서 파란 부분은 소실된 정보 초록 부분은 ..
-
Pose Estimation 영상의 인물의 자세를 측정하는 영상인식 인물이 어떤 행동을 하고 있는지 자세를 통해서 유추할 수 있다. 자전거를 타거나 수영을 하는 등의 많은 정보를 얻을 수 있다. 또한 노인이 넘어지거나 하는 모션을 탐지하여 구조할 수 있는 등의 강점도 있다. 관절을 찾는 것에서 시작한다. 얼굴의 눈부터 관절들을 판별한다. 각 꼭지점의 위치를 랜드마크 LandMark라고 한다. 얼굴에 맞는 증강현실과 필터를 씌울수도 있다. 사람의 관절을 찾는 것은 heat map을 사용한다. 온도의 차이를 통해 부위를 판별한다. 모래시계처럼 생긴 중간이 작은 형태의 의미론적 분석과 비슷한 모델로 학습한다. 이것을 여러번 반복했을 때 Stacked Hour Glass Model로 만들어진다. 풀링을 거치면서..
-
PSPNet Pyramid Scene Parsing Network 의미론적 분할을 위해 나온 모델 풀링을 피라미드 구조로 다양한 크기로 동시에 적용한다. 역시 정보손실을 줄이기 위한 방법으로 다양한 크기의 피쳐맵들이 여러 사이즈로 각자 정보를 전달해 준다. 마지막에는 이 다양한 사이지의 피쳐맵을 다시 원상태로 만들어서 결합한다. 성능을 비교해 봤을때 FCN 보다 물체를 감지하는 능력이 뛰어났다. 예를 들어 그림에서는 베개를 침구사이에서 찾아내는 능력이 있었다. 그리고 빌딩을 찾아냈을 때 FCN에서는 빛이 반사되는 것을 보고 다른 물체로 분류했지만, PSPNet에서는 하나의 빌딩으로 정확히 인식해냈다. 다양한 스케일의 풀링을 한다는 의미는 여러 관점으로 화면을 바라보는 것과 같다. 어떤 사이즈의 풀링에서는..
-
FCN Fully Convolutional Network 의미론적 분할을 설명하기 위해 가장 먼저 나온 논문이다. FCN Fully Convolutional Network 신경망을 AlexNet으로 설명하였다. input 영상의 사이즈 고정할 필요 없이 어떤 사이즈에 대해서도 모두 학습이 가능하다. 영상의 벡터를 flatten하여 일자로 쭉 펴서 학습시킨다. 마지막 레이어에는 Upsampling을 통해서 벡터를 다시 원상태로 되돌린다. 보간법을 사용한다. 보간법 Bilinear Interpolation 양쪽의 숫자를 보고 중간 숫자의 값을 유추한다. 이것을 2차원으로 적용하면 2D Bilinear Interploation이다. x의 값을 유추하기 위해 거리에 반비례하여 가장자리의 값들을 계산한다. 3x3..
-
의미론적 분할 Semantic Segmentation 같은 의미를 갖는 영역들을 분할한다. 그림에서 보면 사람들은 모두 같은 색상으로, 차량도 같은 색상으로, 보도블럭과 도로간의 구분등 같은 의미를 갖는 물체들을 함께 탐지한다. Instance Segmentation은 의미론적 분할보다 한단계 진화한 형태로 각각의 개체를 인식할 수 있게 된다. 객체탐지에 비해서 속도가 느리다. 응용 분야에는 자율주행, 인물사진 배경 탐지, 의료영상 등이 있다. 시맨틱 분할에서는 각각의 영역이 나타내는 label 값이 있다. 레이블이 픽셀만큼 주어진다. 이 레이블들은 채널별로 나뉘어서 각자의 영역을 나타낸다. 사람 채널에는 사람이 있는 부분에 1 나머지 부분은 0을 표시하게 된다. 물체의 개수에 따라 채널의 수가 정해지게..
-
전이학습 Transfer Learning AI 모델을 만들 때 데이터의 양이 중요하지만 일부 기업 외에는 충분한 양질의 데이터를 구하기가 쉽지 않다. 또한 모델 학습시에 필요한 GPU, CPU, 메모리와 같은 자원과 컴퓨팅 파워에도 한계가 있다. 이런 경우에, 기존에 학습된 모델을 전이하여 발전시킬 수 있게 된다. 사전학습모델을 가져와서 새로운 테스트 데이터에 적용해도 성능을 유지할 수 있다. 딥러닝은 대부분 전이학습의 과정을 거친다. 전이학습의 유형 feature extractor만 가져와서 새로운 분류기와 결합한다. 이 과정에서 feature extractor의 일부분을 새롭게 훈련시켜서 적용한다. 태스크가 거의 비슷하다면 사전학습 모델을 그대로 사용하는 경우도 있다. 개와 고양이를 분류하는 문제에서..
-
컴퓨터 비전 Computer Vision 음성 인식 Speech Recognition 전기 신호로 들어온 음성을 디지털로 메모리에 저장하게 되며 이 과정에서 샘플링을 하게 된다. 숫자로 표현된 샘플들은 중간에 생략된 과정들을 거쳐 벡터로 치환하여 신경망을 통해 처리한다. 신경망과 분류과정을 거쳐서 누구의 음성인지 파악할 수 있게 된다. 영상 인식 Visual Recognition 흑백 영상은 화소 하나씩이 하나의 값이 된다. 모든 위치의 값을 밝기와 비례한 숫자 값으로 치환하여 밝을수록 255에 가까운 값을 가지고, 어두울수록 0과 가까운 값을 가지게 된다. 각 구역은 x와 y의 좌표 값으로 위치를 알게 되고 그 위치의 값인 U(x, y) 가 밝기 값을 가지는 요소가 된다. 2차원의 밝기 값으로 나타낸 ..