신경망(AI)은 프라레일 신칸센을 얼마나 분류할 수 있는지 Part.1

  • 공부를 겸해, 실제로 신경망으로 다치 분류를 해 보고 싶다!
  • 하지만 MNIST는 이미 좋다, 다른 소재로 하고 싶다!
  • 하지만 이미지는 어떻게 모을까? 촬영한다고 해도 매수 있구나···아, iPhone의 연사 기능 잡으면 좋잖아!

  • 그래서 그때 우연히 눈에 들어온 아들의 프라레일 신칸센을 촬영해 다치 분류에 도전. 그 과정에서 한 일, 알았던 것을 써 갑니다.

    5종류의 신칸센으로 실험




  • 왼쪽에서
  • 500계
  • 700계
  • E5계(하야부사)
  • E6계(코마치)
  • E7계 (카가야키)

  • 수중에 있던 것이 이 5 차종이었으므로, 이것들을 사용하기로 했다.
  • 신칸센 이외의 플라레일은 신칸센과 크게 형상이 되기 때문에, 문제로서 재미있지 않을까, 라고 생각하지 않았다.

  • 총 1000장 정도 촬영




  • iPhone의 연사 (버스트) 기능을 사용하여 차량 주위와 지붕 부분을 푹 쏘아
  • 1 차량 마다 200장 정도 촬영
  • 배경을 바꾸거나, 레일에 올려놓거나, 커브에 맞추어 늘리는 등의 이미지는 이번에는 찍지 않았다.
  • 약간 흔들리는 이미지가 있거나 그림자가 떨어지는 이미지가 있지만 신경 쓰지 않고 사용

  • 실험에서는 회색조 이미지를 사용




  • 신칸센은 각각 색이 되기 때문에 컬러 이미지라면 너무 간단할까 생각하고, 그레이 스케일 이미지로 하는 것으로 형상에 의해 분류할 수 있을까를 실험하기로 했다.

  • 우선 간단한 네트워크 구조로 실험


  • 숨겨진 레이어 없음, 입력 레이어 및 출력 레이어 만

  • tensorflow
    f = tf.matmul(x, w) + b
    p = tf.nn.softmax(f)
    
  • 이미지 크기는 504 x 378 ⇒ 입력 레이어의 노드 수는 190512
  • w와 b는 0으로 초기화
  • 오차 함수는 교차 엔트로피
  • 확률적 구배 하강법을 사용. 배치 수는 100. 에포크는 5000. 학습 시간은 30분 정도.
  • 준비한 화상 중 랜덤하게 선택한 100매를 테스트용 화상으로, 그 이외를 트레이닝용 화상으로서 사용하였다.

  • 에포크 1000으로 정답률 93%!


  • 심플한 네트워크에 비해서는 높은 수치가 아닐까···솔직히 놀랐다.
  • 에포크를 더욱 늘리면 오차의 값은 아직 내려갈 것



  • 판정 미스한 화상은 인간에게는 간단한 화상


  • 판정 미스한 화상에는 각 신칸센의 특징적인 부분이 우울하지 않았는가? 라고 생각해 보면, 그런 일은 없고, 인간에게는 간단하게 판정할 수 있는 화상 뿐이었다. 거기가 반대로 재미있다고 느꼈다.
  • 잘 보면 자신의 손 등이 찢어져 있다. 하지만 좋은 소음이라고 생각하기 때문에 앞으로도 이대로 사용한다.



  • 에포크를 늘리면 정답률이 100%로


  • 오차는 아직 순조롭게 들릴 것 같았기 때문에, 시험에 에포크를 10000으로 해 보았더니 6100당으로 정답률 100%가 되어 버렸다. 뉴럴 네트워크 놀이···.
  • 아마도 문제가 너무 쉬울 것입니다. 다음 번에는 배경 등을 바꾼 이미지를 더 늘리기로 한다.
  • 좋은 웹페이지 즐겨찾기