ML

    CS231n Lecture 11 : Detection and Segmentation

    1. Computer vision의 다양한 task 이전 CS231n 정리 포스팅은 주로 인공지능을 활용한 컴퓨터 비전 문제 중 주로 "분류"에 대해 다루었다. CV에는 분류 뿐만 아니라 다양한 Task들이 존재한다. 객체가 아닌, 픽셀 단위로 그 픽셀이 어떤 클래스에 속하는지를 예측하는 Semantic Segmentation 문제 분류를 하고, 그 분류된 클래스의 하나의 객체가 이미지의 어디에 있는지 예측하는 Classification+ Localization 문제 하나의 이미지에 여러 클래스의 여러 객체가 어디에 있는지 예측하는 Object Detection 문제 Object Detection에서, 위치만 예측하는 것이 아닌, 객체가 존재하는 픽셀까지 예측하는 Instance Segmentation ..

    Recurrent Neural Network (RNN)

    1. Recurrent Neural Network (RNN) 지금까지의 네트워크 구조는 하나의 입력에 대한 하나의 출력을 내보내는 네트워크였다. 그렇기 때문에 CNN에서도 하나의 이미지에 대한 결과를 나타냈었는데 음성 및 문자 등 순차적으로 등장하는 데이터처럼 입력의 길이와 출력의 길이가 가변적인 문제에서는 어떻게 처리해야할까? 이 문제를 해결하기 위해 RNN을 사용한다. RNN이란 시퀀스와 연결된 노드로 구성된 네트워크이다. 2. RNN의 구조도 RNN의 구조는 문제에 따라 다르게 정의될 수 있다. 다음은 그 구조도이고, 각각 대표적으로 어떤 문제에 사용되는지 알아보자. one to many : 이미지 -> 단어의 연속 (이미지 설명) many to one : 단어의 연속 -> 문장 (단어 분석) ma..

    CNN 구조

    0. AlexNet 가장 처음 LeNet-5라는 CNN 아키텍처가 있었다. 하지만 하드웨어의 한계로 유의미한 성과를 내지 못했었는데, 하드웨어가 발달함에 따라 이 아키텍처를 더 키운 AlexNet이 2012년에 발표되었다. 파라미터의 갯수는 필터의 크기 x 필터의 갯수이므로 첫번째 레이어만 약 3만 5천개((11*11*3)*96)의 파라미터가 들어갈 만큼 AlexNet은 LeNet-5에 비해 커졌음을 확인할 수 있다. 다음은 AlexNet의 구조도이다. 당시의 하드웨어적 한계(그래픽 카드의 메모리가 3GB 였음)로 인하여 레이어가 같은 레이어더라도 반씩 나누어 연산을 하였으며, GPU간의 통신이 느리기 때문에 1,2,4,5번째 CONV는 같은 GPU에 속한 feature map에 대하여 전파하였으며, 3..

    인공지능 Learning rate, Regularization, Weight update, Transfer Learning

    1. Learning rate 이전 포스팅에서 optimize방식에 대해서 다루어보았다. 모든 방식은 learning rate를 하이퍼 파라미터로써 갖음을 확인하였는데, 어떤 형태의 하이퍼 파라미터가 가장 좋은것이고, 어떻게 이 값을 결정할까? 우리의 최종 목표는 빨간 선의 경향을 갖는 learning rate를 찾아야 한다. 이를 찾기 위해서는 다양한 learning rate를 실험해야 하는데, 범위를 좁히는 방법으로는 step decay, expotential decay, 1/t decay가 있다. 학습을 진행시킴에 따라 더이상 Loss가 줄어 들지 않고 수렴하는 형태를 띌ㄹ 때 위와 같은 방식으로 learning rate를 업데이트 해준다. 이러한 방식을 learning rate decay라고 한다..

    다양한 Gradient descent optimization

    0. 더 나은 optimization 지금까지 사용했던 Gradient descent는 Stochastic Gradient Descent(SGD)였다. 하지만 실제로는 다양한 Gradient descent방식이 있으며 각 어떤 특징을 갖는지 확인해보자. 1. SGD의 문제점 우선 SGD의 문제가 무엇일까? 다음과 같은 상황을 가정해보자. 하나의 weight에 대한 Loss의 Gradient가 크고, 또 다른 하나의 weight에 대한 Loss의 Gradient가 작다면 즉, Hessian matrix에서 가장 큰 값과 가장 작은 값의 비율이 클 때, 다음과 같이 optimize한다. 이렇게 되면 Gradient가 작은 방향에 대해서는 optimize속도가 느리고, 큰 방향에 대해서는 변화가 요동친다. 이..

    인공 신경망 학습

    1. 활성화 함수 1. 인공 신경망의 간략도 2. 활성화 함수란? 네트워크로 분류할 때, 분류기가 비선형 분류기로써 역할을 하기 위한 비선형 함수이다. 위 그림에서 활성화 함수 부분이 빠진다면 각 노드는 *와 + 등 선형 연산만 하게 되므로 이런 네트워크는 비선형 데이터를 분류하지 못하게 될 것이다. 3. 활성화 함수의 종류 1. Sigmoid 가장 초기의 활성화 함수로 뉴런에 대한 직관적인 해석으로 탄생한 활성화 함수이다. 하지만 현재에는 잘 사용하지 않는데 다음과 같은 3가지의 이유가 있기 때문이다. 첫째로는 레이어를 거듭할 수록 기울기가 0에 가까워 지기 때문이다. 그 이유는 Sigmoid의 정의 때문인데, 0에서 - 혹은 +로 발산할 수록 gradient는 0에 가까워지고, 이것이 레이어가 깊어질..