전체 글

전체 글

    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..

    백준 17370번 육각형 우리 속의 개미

    문제 문제 분석 일반적인 벌집 모양 문제이다. 다만 처음에 종료조건을 조금 오인했는데, 하나의 벌집 칸을 모두 돌 때 끝나는 것이 아닌, 이미 지나온 어떠한 칸을 마주치더라도 종료되는 것이다. 그래서 그냥 좌표에다가 벌집을 찍고, 회전에 대한 구현을 하여 이미 지나온 점을 만날 때 회전한 횟수가 P일 때 카운트를 더하게 하여 문제를 해결하였다. 우선 벌집을 좌표로써 표현한 방법은, 가로와 세로로 나눌 수 있는데, 세로의 경우, 한 변의 길이가 a라고 가정했을 때, 직선으로 올라가는 것, 대각선으로 올라가는 것 (내려가는 것 포함)으로 나눌 수 있다. 직선으로는 y좌표로 그대로 a가 추가되고, 대각선으로는 a * 1/2가 추가된다 (30, 60, 90 직사각형으로 보았을 때 길이의 비율로 따짐). 가로로 ..

    백준 10879번 Speak your mind!

    문제 문제 분석 복잡해 보이지만, 결국 요점은 입력을 2의 제곱의 덧셈 뺄셈으로 나타내는 것이다. 현재 값이 A라고 할 때 A를 X(2의 제곱수) - Y(나머지) 혹은 X'(2의 제곱수) + Y'(나머지)로 나타내고, 그 중에서 작은 값을 선택하면 된다. 이를 점화식으로 나타내면 다음과 같다. N(A) = min((N(X/2)+N(A-X/2)+4), (N(X)+N(X-A)+4)) 나는 이를 DP + DFS로 풀었다. 좀 더 디테일 하게 설명해보자면, DP를 확인하여 값이 있으면 그 값을 리턴하고, 없으면 재귀 호출로 쭉 내려가서 값을 계산하여 그를 사용하는 방식 말이다. 내가 이렇게 한 이유는 A보다 큰 값이 문제 해결에 쓰이기 때문이었다(A = X - Y). 그런데 다시 보니, X는 A보다 크더라도 2..

    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라고 한다..