신경망 : 당신은 단순한
신경망이 늘어나고있는 모든 해커, 학생, 연구원뿐만 아니라 기업들이 참여하는 수많은 분노가 있습니다. 마지막 재봉은 90 년대뿐만 아니라 90 년대의 세계 와이드 웹뿐만 아니라 소수의 신경 네트워크 도구가 거의 없거나 전혀 없었습니다. 현재의 재봉은 2006 년경에 시작되었습니다. 해커의 관점에서 다른 자원뿐만 아니라 다른 자원뿐만 아니라 다른 자원이 제공되는 도구가 무엇이며 미래를 기대해야합니까? 나 자신을 위해, 라스베리 파이의 GPU는 좋을 것입니다.
80 년대뿐만 아니라 90 대
신경 네트워크 80S / 90S 도서뿐만 아니라 Mags
우리가 오래된 틈새가 세계 와이드 웹 앞에서 어떤 일을 할 수 있었는지 궁금해하는 영경을 위해 하드 카피 잡지는 우리가 새로운 것을 의식하게 만드는 데 거대한 부분을 연주했습니다. 그래서 Scientific American Magazine ‘s 1992 년 9 월에 특별한 문제뿐만 아니라 생물학적 종류뿐만 아니라 생물학적 종류와 신경망에 도입 한 뇌뿐만 아니라 특별한 문제였습니다.
그때 그때 당신은 우편물에 플로피 디스켓을받는 다른 사람의 스크래치 또는 주문 소스 코드를 처음부터 주문하거나 주문하는 옵션을 가졌습니다. 나는 심지어 그 과학적인 미국 문제의 아마추어 과학자 칼럼에서 플로피를 주문했다. 당신은 마찬가지로 당신을 위해 모든 저급, 복잡한 수학을 모두 수행하는 신경 네트워크 라이브러리를 구입할 수 있습니다. 마찬가지로, 토론토 대학에서 Xerion이라는 무료 시뮬레이터가있었습니다.
서점 과학 섹션에 눈을 지키는 것은 주제에 대한 가끔 책을 밝히는 것입니다. 전통적인 것은 McClelland et al. 광산 중에서 선호하는 것은 신경 계산뿐만 아니라 자체 조직지도였습니다 : 소개, 로봇 팔을 제어하는 신경망에 관심이있는 경우 유용합니다.
당신이 참석할 수있는 회의뿐만 아니라 짧은 과정이있었습니다. 내가 1994 년에 참석 한 세미나는 Geoffrey Hinton, 그 다음 토론토 대학교의 대학교뿐만 아니라 현재 현장의 선두 주자 인 자유로운 2 일간의 자유로운 2 일간의 자유로운 2 일입니다. 당시 가장 평판이 좋은 연례 세미나는 신경 정보 처리 시스템 컨퍼런스이었으며 여전히 오늘 강하고 있습니다.
마지막으로, 나는 발표 된 논문에 대한 라이브러리를 빗질하는 것을 회상합니다. 세미나 신문뿐만 아니라 프로그램 유인물, 복사 된 기사뿐만 아니라 그 기간의 손잡이 노트는 약 3 인치의 두께입니다.
그런 다음 상대적으로 조용히갔습니다. 신경망은 몇 가지 응용 프로그램에서 사용을 발견했지만, 그들은 제한된 연구 커뮤니티 외부에서 세계의 관점에서뿐만 아니라 그들의 과대 광고뿐만 아니라, 중요한 연구 커뮤니티의 밖에서도 살았습니다. 점진적인 개선이 약간의 돌파구와 함께 조용한 것들이 조용한 것으로 남아 있었고, 2006 년에는 마지막으로 그들은 전 세계에서 폭발했습니다.
현재가 도착합니다
우리는 짧게 도구에 초점을 맞추고 있습니다.
깊은 신경망이라고 불리는 3 ~ 4 개의 레이어를 깊이로가는 훈련 네트워크를위한 새로운 기술
교육 속도를 높이기위한 GPU (그래픽 처리 장치)의 사용
많은 수의 샘플을 포함하는 교육 데이터의 가용성
신경 네트워크 프레임 워크
일반적으로 다양한 라이센스로 무료로 다운로드 할 수있는 프레임 워크라는 수많은 신경 네트워크 라이브러리가 있습니다. 대부분의 인기있는 사람들은 GPU에서 신경망을 운영 할 수 있으며 대부분의 유형의 네트워크를 지원하기에 충분한 유연한 충분합니다.
여기에는 대부분의 인기가 있습니다. 그들은 모두 FNN을 제외하고는 GPU 지원이 있습니다.
tensorflow.
언어 : Python, C ++가 작동합니다.
Tensorflow는 Google의 최신 신경 네트워크 프레임 워크입니다. GPU뿐만 아니라 여러 기계에서 네트워크를 배포하도록 설계되었습니다. 그러나 낮은 수준의 고수준으로 간주 될 수 있지만,뿐만 아니라 keras뿐만 아니라 tflearn과 같은 높은 수준의 학습 곡선보다 큰 능력을 제공합니다. 그러나 Tensorflow에 통합 된 Keras 버전을 생성하는 작업을 수행하고 있습니다.
우리는이 망치에 이미 해킹 된 맥주 병뿐만 아니라 맥주 병을 인식하는 맥주 병뿐만 아니라 Tensorflow를 사용하는 소개를 가지고 있습니다.
태도
언어 : Python.
이것은 다중 차원 배열과 관련된 효과적인 수치 계산을 수행하기위한 오픈 소스 라이브러리입니다. 그것은 몬트리올 대학교에서 이르고, Windows, Linux뿐만 아니라 OS-X에서 실행됩니다. Theano는 2009 년에 릴리스 된 0.1을 오랫동안 주변에있었습니다.
CAFFE.
언어 : 명령 줄, 파이썬 및 MATLAB
CAFFE는 Berkeley AI Research뿐만 아니라 이웃 기여자가 개발했습니다. 모델은 일반 텍스트 데이터와 명령 줄 도구를 사용하여 처리 할 수 있습니다. 마찬가지로 파이썬과 MATLAB 인터페이스가 있습니다. 예를 들어, 일반 텍스트 파일에서 모델을 정의 할 수 있으며, 해답이라는 두 번째 일반 텍스트 데이터로 훈련하는 방법에 대한 세부 정보를 제공하고 CAF에이를 전달할 수 있습니다.FE 명령 줄 도구는 신경망을 훈련시킵니다. 그런 다음 파이썬 프로그램을 사용 하여이 훈련 된 그물을로드하고 예를 들어 이미지 분류를 수행하는 데 사용할 수 있습니다.
CNTK.
언어 : Python, C ++, C #
이것은 Windows 및 Linux에서 실행뿐만 아니라 Microsoft Cognitive Toolkit (CNTK)입니다. 그들은 현재 Keras와 함께 사용하기 위해 버전에서 작업하고 있습니다.
keras.
언어 : Python.
파이썬으로 작성된 Keras는 Tensorflow 또는 Theano에서 해당 프레임 워크를 쉽게 사용할 수 있습니다. CNTK도 지원할 계획이 있습니다. KERAS를 Tensorflow로 통합하여 Keras의 별도의 Tensorflow-only 버전의 Keras가 발생하는 작업이 진행 중입니다.
TF 배우기
언어 : Python.
Keras와 마찬가지로 Tensorflow 꼭대기에 지어진 고급 라이브러리입니다.
포넷
언어 : 15 개 이상의 언어 지원, GPU 지원 없음
이것은 C로 작성된 높은 수준의 오픈 소스 라이브러리입니다. 완전히 연결된 신경 네트워크뿐만 아니라 완전히 연결되어있는 것으로 제한됩니다. 그러나 수년 동안 인기가 있었고 심지어 Linux 배포판에 포함되어 있습니다. 최근에 보강 학습을 사용하여 걷는 법을 배운 로봇의 Hackaday에서 여기에 표시되어 있으며, 종종 신경망을 사용하는 기계 학습 기술을 사용하는 것입니다.
토치
언어 : Lua.
C. 흥미롭게 묘사 된 오픈 소스 라이브러리는 토치가 embeddable, IOS, andoid뿐만 아니라 FPGA 백엔드뿐만 아니라 포트가 포함 된 웹 사이트의 앞 페이지에서 말합니다.
pytorch.
언어 : Python.
Pytorch는 상대적으로 새로운 것이고, 그들의 웹 사이트는 초기 출시 베타에 있다고 말하면서, 그 안에 많은 관심이있는 것 같습니다. Linux 및 OS-X에서 실행뿐만 아니라 밑에 토치를 사용합니다.
내가 놓친 다른 사람들은 아무런 질문이 없습니다. 특별한 선호가 있으면 주석을 알려주십시오.
어느 것을 사용해야합니까? 프로그래밍 언어 나 OS가 문제가 아니면 사용자의 기술 수준은 프로그래밍 언어입니다. 수학에 불편하거나 신경망의 뉘앙스에 깊이 파는 것을 원하지 않으면 높은 수준의 수준을 선택하십시오. 이 경우 Kera, TFlearn 또는 다른 고급 수준의 API보다 API에 대해 더 많이 배워야합니다. 수학 기능을 강조하는 프레임 워크는 일반적으로 네트워크를 생성하기 위해 더 많은 작업을 수행해야합니다. 기본 연구를 할 것인지 여부는 하나의 더 중요한 요소입니다. 높은 수준의 프레임 워크를 사용하면 모든 방향으로 흐르는 데이터와뿐만 아니라 여러 계층이나 계층 내에서의 연결을 통해 미친 네트워크를 만들기에 충분한 인내를 확보 할 수 있습니다.
온라인 서비스
신경망이 귀하의 해킹에 제공 될 것이지만 신경망의 복잡함을 배우는 데 시간을 할애하기를 원하지 않는 일을 추가하고 싶습니다. 이를 위해 해킹을 인터넷에 연결하여 제공되는 서비스가 있습니다.
음성 인식을 위해 Amazon ‘s Alexa를 사용하는 수많은 예를 보았습니다. Google은 비전뿐만 아니라 음성을 포함하는 클라우드 머신 학습 서비스를 제공합니다. 그 비전 서비스는 사탕 정렬뿐만 아니라 인간 감정을 읽는뿐만 아니라 라스베리 파이를 사용하여 여기에 표시됩니다. Wekinator는 예술가뿐만 아니라 뮤지션을 겨냥한 음악가뿐만 아니라 집 주변에서 물건을 돌리고 가상 세계의 가장 작은 바이올린을 만드는 데 다양한 제스처에 대응하기 위해 신경망을 훈련시키는 데 사용 된 것을 보았습니다. Microsoft는 비전, 음성, 언어뿐만 아니라 다른 사람들과 같은인지 서비스 API가 있습니다.
GPU뿐만 아니라 TPUS.
신경망을 통해 반복합니다
신경망을 훈련시키는 것은 네트워크의 정확도를 향상시킬 때마다 신경망, 앞으로뿐만 아니라 앞으로뿐만 아니라 앞으로의 반복을 요구합니다. 점까지, 당신이 할 수있는 반복이 많을수록, 마지막 정확도가 멈출 때 훨씬 낫습니다. 반복 횟수는 수백 가지나 수천개에있을 수 있습니다. 1980 년대와 1990 년대 컴퓨터에서 충분한 반복을 달성하면 받아 들일 수없는 시간이 걸릴 수 있습니다. 이 기사에 따르면 신경망의 깊은 학습 : 2004 년에, 완전히 연결된 신경망의 GPU로 속도가 20 배 증가했다. 2006 년에는 컨볼 루션 신경망에 대해 4 배 증가가 달성되었습니다. 2010 년까지 CPU 대 GPU 대 GPU의 교육을 비교할 때 증가가 50 배 빠릅니다. 결과적으로 정확도는 훨씬 높았습니다.
NVIDIA TITAN XP 그래픽 카드. 이미지 크레딧 : NVIDIA.
GPU는 어떻게 도움이됩니까? 신경망 훈련의 거대한 일부는 CPU보다 GPU에서 훨씬 더 빠른 행렬의 매트릭스 곱셈을 포함합니다. 그래픽 카드와 GPU를 만드는 리더 인 NVIDIA는 GPU를 사용하기 위해 신경망 소프트웨어가 사용하는 CUDA라는 API를 만들었습니다. 우리는 CUDA라는 용어를 많이 볼 수 있기 때문에이를 지적합니다. 깊은 학습의 확산을 통해 NVIDIA는 CUDNN (Deep Neural 네트워크 용 CUDA), 미세하게 조정 된 신경 네트워크 프리미티브 라이브러리뿐만 아니라 볼 수있는 한 용어를 포함하여 더 많은 API를 추가했습니다.
뉴욕DIA는 자체 단일 보드 컴퓨터 인 Jetson TX2, 자체 운전 자동차, Selfie-snapping Drones 및 이렇게뿐만 아니라 셀프 스냅 한 브랜지로 설계되었습니다. 그러나 우리의 [브라이언 벤치 오프]가 지적했듯이, 가격 점은 전형적인 해커에 대해 조금 높습니다.
Google은 TPU (Tensor Processing Unit)의 유형에서 자체 하드웨어 가속에 대해 자체 하드웨어 가속을 작동 시켰습니다. Tensorflow 위의 Google 프레임 워크의 이름과 유사성을 발견했을 수도 있습니다. Tensorflow는 텐서를 무겁게 사용합니다 (소프트웨어에서 다중 차원 배열뿐만 아니라 멀티 차원 배열을 생각하십시오). TPU의 Google 용지에 따르면 그것은 신경망의 추측 단계를 위해 설계되었습니다. 추론은 신경 네트워크를 훈련시키지 만 신경망을 훈련시키지 않도록 말합니다. 우리는 아직 어떤 종류의 프레임 워크에서 사용하는 것이 보지 못했습니다. 그러나 그것은 명심해야 할 것입니다.
다른 사람들의 하드웨어를 사용합니다
훈련에 오랜 시간이 걸릴 때 오랜 시간이 걸릴 수 있지만 지원되는 GPU가 없거나 자원을 묶고 싶지 않으려는 신경망이 있습니까? 해당 상황에서는 인터넷을 통해 액세스 할 수있는 다른 시스템에서 사용할 수있는 하드웨어가 있습니다. 하나는 개인을 위해, 월별 지불없이 시간당 페니 만비 만비가 필요합니다. 하나는 Amazon EC2입니다.
데이터 세트
레이블이있는 데이터가있는 신경망 훈련
우리는 신경 네트워크의 획기적인 혁신 중 하나가 수만 명의 샘플을 수십 명의 샘플을 포함하는 교육 데이터의 가용성이었습니다. 감독 된 교육 알고리즘을 사용하여 신경망을 훈련하는 것은 예상되는 출력이 무엇인지 마찬가지로 네트워크에 데이터를 네트워크에 제공하는 것을 포함합니다. 이 상황에서 데이터가 마찬가지로 레이블을 지정해야합니다. 네트워크의 입력에 말의 이미지를주고 출력물이 치타처럼 보이는 경우, 오류가 큰 훈련이 필요하다는 것을 알아야합니다. 예상 출력을 레이블이라고하며 데이터는 ‘레이블이 지정된 데이터’입니다.
많은 이러한 데이터 집합은 교육 목적으로 온라인으로 제공됩니다. MNIST는 필기체 인식을위한 것입니다. ImageNet과 CI -ar는 레이블이있는 이미지의 두 가지 데이터 세트입니다. 이 Wikipedia 페이지에 더 많은 것이 나와 있습니다. 위에 나열된 많은 프레임 워크에는 필요한 데이터 세트가 포함 된 자습서가 있습니다.
정확한 정확성을 얻기 위해 큰 데이터 세트가 절대적으로 필요하다고 말하는 것은 아닙니다. 이전에 FNN 프레임 워크를 사용한 워킹 로봇은 서보 모터 위치를 교육 데이터로 사용했습니다.
기타 자원
80 년대뿐만 아니라 90 년대와는 달리 신경망에 대한 하드 카피 북을 살 수있는 동안 온라인으로 수많은 수많은 것들이 있습니다. 내가 즐긴 2 개의 온라인 도서는 MIT 언론뿐만 아니라 신경망과 깊은 학습에 의해 깊은 학습입니다. 위의 나열된 프레임 워크는 모두 시작을 돕기 위해 자습서가 있습니다. 그리고 검색하는 모든 유형의 모든 유형의 YouTube 비디오뿐만 아니라 수많은 다른 웹 사이트가 있습니다. 나는 기록 된 강의의 동영상을 발견하고 세미나 회담은 매우 유용합니다.
미래
라스베리 PI 7 GPU
의심 할 여지없이 미래는 더 많은 프레임 워크가 오는 것을 볼 것입니다.
우리는 전문적인 신경 칩뿐만 아니라 시장에서의 보드뿐만 아니라 90 년대에 거 대 한 시장을 발견 한 적이 없었습니다. 그러나 실제 성장 영역, 모든 사람이 작업하는 신경 네트워크 소프트웨어 인 실제 성장 영역을 제공하기 위해 특별히 설계되지 않았습니다. GPU는 그 시장을 제공합니다. 화상에 대한 수백만 개의 연결이있는 신경 네트워크뿐만 아니라 음성 가공, 언어뿐만 아니라 소규모 소비자 장치뿐만 아니라 소프트웨어에 맞는 GPU 또는 프로세서가 필요로하는 더 많은 GPU 또는 프로세서에 대한 필요성을 제공합니다. 라스베리 PI 또는 Arduino 보드에 새로운 요소가되면 끝낼 수 있습니다. 처리가 대신 온라인 서비스로 유지 될 가능성이 있지만 편집 : 라스베리 파이에 GPU가 있습니다 – 아래의 의견을보십시오. 이는 위의 모든 프레임 워크가 그것을 사용하게하는 것을 의미하지는 않습니다. 예를 들어 Tensorflow는 NVIDIA CUDA 카드 만 지원합니다. 그러나 사용자 지정 신경 네트워크 코드에 GPU를 계속 사용할 수 있습니다. 다양한 링크도 그에 대한 의견에 있습니다.
TPU와 같은 ASICS에서 GPU에 대한 GPU에 대한 경쟁이 이미 있으며, 가능하면 더 많은 것을 볼 수 있습니다.
우리의 새로운 컴퓨터에서