1. 인공신경망을 프갤러로서 다뤄볼 수 있는 방법은? (텐서플로?)
2. 처음에 '새'라는 훈련데이터 이미지를 바탕으로 신경망에다가 새 이미지를 어느 정도 검출해낼 수 있는 수치들이 마련되었다고 치자.
그러면 새인지 아닌지 안 가르쳐주고 이미지들을 막 끌어다가 준다고 치면 틀린 긍정이라는 케이스를 어떻게 잡아낼 수 있음?
3. 새 인식하는게 따로 있고 고양이 인식하는게 따로 있으면 만약 큰 배경에 새와 고양이가 있을 때 둘을 어떻게 인식해냄?
그리고 사물이 여러 개 있으면 하나하나 어떻게 인식해냄? ocean 같은 다소 추상적인 단어같은 경우에는 어떻게 접근 가능함?
1. 차근차근 배우려면 냅다 cnn부터 배우는 거보다는 svm (support vector machine)이나 softmax classifier부터 시작하는 걸 추천할게
그 다음에 multilayer perceptron이라고 매우 단순한 형태의 인공 신경망을 구현해보고 그 다음에 cnn을 이해하면 돼
2. 틀린 긍정이 뭘 의미하는 건지 모르겠고
3. 일반적으로 이미지 인식하는 네트워크의 경우에는 (완전 최신 연구 경향까진 모르겠고) 주어진 크기의 이미지를 인풋으로 받아서 클래스 개수 만큼의 길이를 갖는 벡터를 결과물로 내놓음. Test 단계에서는 벡터에서 가장 큰 값을 갖는 걸 결과값이라고 예상하는 거고 Train 단계에서는 원하는 결과를 출력하도록 백프로파게이션을 통해 웨이트 값을 바꿔주는 과정이 일어남
이렇게 학습된 네트워크는 딱 정해진 사이즈의 이미지를 받아서 뭔지 알려주는 역할을 하게 되는 거임
그럼 큰 이미지 내에서 여러 오브젝트가 있으면 각각이 뭔지를 어떻게 구별해내느냐. 그건 classifier 네트워크 앞에다가 오브젝트 후보를 뽑아내는 네트워크를 달고, 오브젝트 후보 이미지만 이 classifier에 집어넣어서 각 오브젝트가 뭔지를 예측하고 그 결과를 바탕으로 원본 이미지에다가 박스를 그리고 거기에 이름표 붙이는 거임
이런 류의 네트워크를 R-CNN이라고 불렀었는데, 작년 말에 페이스북에서 mask R-CNN이라고 세그멘테이션 + 라벨링 계의 끝판왕이라고 볼 수 있는 논문 내고, detectron이란 걸 오픈소스해버림
틀린 긍정은 false positive 말하는듯 - return 0;
기본개념이해하고 오픈소스들 몇개보셈
https://github.com/ageitgey/face_recognition
https://github.com/rbgirshick/py-faster-rcnn
https://github.com/cmusatyalab/openface