요즘 사용하고 있는 딥러닝 프레임워크 Yolov2 Darknet에 관련 포스팅을 하고자 합니다

https://pjreddie.com/darknet/yolo/ 에 가시면 좀 더 정확한 정보를 확인 하실수 있습니다


설치(Ubuntu 14.04)

https://github.com/pjreddie/darknet 에서 Darknet 프로젝트를 확인하실 수 있습니다


git을 통해 프로젝트를 받으셨다면 makefile을 고쳐야 합니다



makefile에 보시면 GPU와 opencv 등을 사용할 것인지 확인을 합니다

각자 맞는 상황에 맞는 세팅을 하시면 됩니다

만약 gpu를 사용하지만 opencv와 cudnn을 사용하지 않는다면 gpu만 1 opencv와 cudnn은 0으로 두시면 됩니다


makefile을 세팅 하셨다면 make를 통해 설치를 마치시면됩니다


설치(Windows)

https://github.com/unsky/yolo-for-windows-v2 에서 윈도우 버전 Darknet 프로젝트를 확인하실 수 있습니다

git에는 opencv2.4.9로만 되어 있지만 3.x 버전에서도 동작되는 것을 확인했습니다

Visual studio를 사용하여 Cuda가 설치되어있는 위치와 opencv의 위치를 잡아 주시면 됩니다



Darknet3rdParty 는 프로젝트에 포함되어있는 3rdparty안에 있는 라이브러리 입니다


위와 같이 세팅해주시고 64bit로 컴파일 하시면됩니다


다음편은 세팅편으로 돌아오겠습니다

Reinforcement Learning(강화학습: RL)은 Interpreter(관리자)가 Agent(로봇) 에게 보상과 상태를 주며 action(행동)을 시키는데 그 action이 맞으면 

reward를(1) 틀리면 punishment(?) 를 줘서 그 행동의 방향을 우리가 원하는 방향으로 바꾸는 알고리즘이다


[그림] 간단한 reinforcement learning 

https://en.wikipedia.org/wiki/Reinforcement_learning


RL은 Machine learning(기계학습: ML) 분야에 많이 사용되는데 ML분야에 기본인 Data를 이용하여 Output을 추론하는 과정에
가장 최적화된 방법을 찾는데 사용된다


ML의 방법에는 크게

Label된 데이터가 필요한 Supervised learning(지도학습)

Label된 데이터가 필요 없는 Unsupervised learning(비지도학습)

이 있는데 Supervised learning의 경우 많은 수의 label된 데이터를 수집하는데 어려움이 있고

Unsupervised learning의 경우에는 학습하는데 어려움이 있다

RL를 사용하여 세상에 존재하는 모든 데이터를 학습함에 있어 Unsupervised learning에 좀 더 최적화된 데이터 분류 방법을

제공함으로서 최적화된 ML 알고리즘을 제작하는데 그 사용방법을 사용한다


다음은 RL에 가장 기초가 되는 MDP(Markov Decision Process)에 대해 간단히 알아보도록 하겠다

+ Recent posts