Uncategorized No Comments

텐서플로우 분류 예제

이 예제에서는 가중치가 연결의 속성, 즉 각 연결에 다른 가중치 값을 가지는 반면 바이어스는 뉴런의 속성임을 알 수 있습니다. 이것은 출력 y를 생성하는 sigmoid 뉴런의 완전한 그림입니다 : 우리의 훈련의 목적은 개와 고양이 사이의 분류를 수행하는 네트워크의 모든 뉴런에 대한 가중치 / 바이어스의 정확한 값을 배우는 것입니다. 이러한 가중치의 초기 값은 아무 것도 취할 수 있지만 정규 분포(평균 0 및 작은 분산)를 사용하면 더 잘 작동합니다. 네트워크를 초기화하는 다른 방법이 있지만 정규 배포가 더 널리 퍼져 있습니다. 모양을 지정하는 것만으로 초기 가중치를 빠르게 만드는 함수를 만들어 보겠습니다(이전 포스트에서 truncated_normal 함수에 대해 이야기한 것을 기억하십시오). 일부 예제에서는 학습 및 테스트를 위해 MNIST 데이터 집합이 필요합니다. 걱정하지 마세요, 이 데이터 집합은 예제를 실행할 때 자동으로 다운로드됩니다. MNIST는 필기 숫자의 데이터베이스로, 해당 데이터 집합에 대한 간략한 설명을 위해 이 노트북을 확인할 수 있습니다. 이러한 모든 출력을 2D로 연결하면 크기 28*28의 출력 활성화 맵이 있습니다(32*32에서 28*28이 5*5 및 보폭 1의 필터로 왜 28*28인지 생각할 수 있습니다).

일반적으로 하나의 컨볼루션 레이어에 1개 이상의 필터를 사용합니다. 예제에서 6개의 필터가 있는 경우 크기 28*28*6의 출력을 갖습니다. 컨볼루션 신경망 기반 이미지 분류기를 구축하는 방법을 시연하기 위해 개 이미지를 고양이의 이미지와 식별하고 분리하는 6층 신경망을 구축합니다. 우리가 구축 할이 네트워크는 CPU에서 실행할 수있는 매우 작은 네트워크입니다. 이미지 분류를 수행하는 데 매우 능숙한 기존 신경망에는 더 많은 매개 변수가 있으며 CPU에서 학습하는 경우 많은 시간이 소요됩니다. 그러나, 이 게시물에서, 내 목표는 ILSVRC에 참여 하는 대신 Tensorflow를 사용 하 여 실제 컨볼루션 신경 망을 구축 하는 방법을 보여. 텐서플로우 튜토리얼을 시작하기 전에 컨볼루션 신경망의 기본을 살펴보겠습니다. conv-nets에 이미 익숙한 경우(그리고 conv-net이라고 부름) 2부 즉 Tensorflow 자습서로 이동할 수 있습니다. 혼동 행렬을 시각적으로 확인하여 오분류 분포를 이해할 수 있습니다. 이것은 비용의 매우 간단한 예이지만 실제 교육에서는 교차 엔트로피 비용과 같은 훨씬 더 복잡한 비용 측정값을 사용합니다. 그러나 Tensorflow는 이러한 비용의 대부분을 구현하므로 이 시점에서 이러한 비용의 세부 사항에 대해 걱정할 필요가 없습니다. 뒤로 전파라는 프로세스를 사용하여 최적의 매개 변수 집합을 찾을 수 있습니다.