딥 러닝(deep learning, 또는 인공 신경망 neural network)를 사용할 수 있는 자바(JAVA), C++ 라이브러리가 있습니다.


둘다 무료 라이브러리입니다.


OpenNN - C++ 라이브러리로 인공 신경망을 구현할 수 있는 라이브러리입니다. 당연히 딥러닝도 구현가능합니다.


Deeplearning4J - JAVA용 라이브러리로 역시 딥러닝을 구현 가능합니다.


딥러닝이 시각 자료나 음성 자료에서 클러스터링이나 클래시피케이션 또는 패턴 인식에 많이 쓰이는 것 같습니다. 혹시 그 외 종류의 자료로 연습해보시려면 케글(kaggle.com)에 있는 자료로 연습해보실 수 있으리라 생각합니다.





여담으로...


학부 졸업 프로젝트로 인공 신경망 공부하면서 인공 지능의 매력에 빠져 대학원까지 진학했습니다.


데이터 다루는 연구실에서 공부 중인데, 딥러닝이나 인공 신경망을 적용해서 실험할 여건은 아직 안돼네요.


그 이유를 세 가지 들자면, 첫째, 노력 부족. 둘째, 데이터 부족. 셋째, 컴퓨팅파워 부족입니다.


첫째, 노력이 부족해서 구현을 못하고 있습니다. 이것 저것 할게 많다는 핑계로...


둘째, 데이터가 부족해서 구현을 못하고 있습니다. 딥 러닝이 자료가 적으면 오버피팅(over fitting)을 일으키기 쉬운 기법으로 알고 있습니다(참고: deview 2014년 김정희님 발표). 이게 최근에 잘먹히는 이유는 outlier 까지 커버 가능할 정도로 어마어마한 데이터양이 있기 때문인데요. 제가 그 데이터가 없습니다. 굳이 연습해보려면 케글의 데이터를 가져다 연습해볼 수 있으리라 봅니다.


셋째, 컴퓨팅 파워가 부족하다는 핑계입니다. 연구실의 제 컴퓨터가 성능이 안좋다는 핑계로.


방학 때 할 수 있을 듯. HTML로 링크 걸다가 글 세 번 날아가서 급 마무리...




---------------------------------------------------



2017년 3월 8일 추가


Theano나 Tensorflow를 backend로 해서 KERAS를 쓰면 인공신경망(이거 여러 층 쌓으면 딥러닝)을 쉽게 구현할 수 있습니다.


저는 Theano 백 엔드로 KERAS를 쓰는데요, 한 층(layer) 한 층 레고 조립하는 것 처럼 구현 할 수 있습니다.

Posted by 도전하는 공돌이pooh

댓글을 달아 주세요