딥 러닝(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) 한 층 레고 조립하는 것 처럼 구현 할 수 있습니다.
'노트정리 > 인공지능' 카테고리의 다른 글
케라스(Keras)에서 custom loss function(손실함수) 정의하기 (0) | 2019.04.21 |
---|---|
파이썬(python)에서 쓸 수 있는 딥러닝(deep learning) 라이브러리 씨아노(theano) 튜토리얼 소개 (0) | 2016.07.20 |
인공 신경망에 관한 설명. 스탠포드 대학 앤드류 응 교수의 sparse autoencoder 정리 노트로 인공신경망 이해하기 (4) | 2016.01.07 |
인공 신경망(artificial neural network)에서 선형분리가능(linearly separable)의 의미 (0) | 2015.11.28 |
캐글(kaggle)회장 제레미 하워드(Jeremy Howard)의 컴퓨터가 배울 수 있다는 점이 미래에 가져올 멋지고, 무시무시한 미래. (2) | 2015.08.18 |
퍼셉트론 학습 알고리즘 소스 코드 (0) | 2013.12.20 |
뉴로컴퓨터개론 공부 현황 (0) | 2013.12.19 |
요새 관심사 (0) | 2013.12.10 |