[AAIS]Intro.
2021-01-19 # AAIS

In AAIS(Advanced Application for Intelligence Systems) Lab at Hanyang University

들어가기에 앞서

이번 겨울방학에 무엇을 해야할 지 굉장히 생각이 많았다. 자바백엔드개발자로써 시작을 위해 자바8,스프링부트를 시작했고 이제 코딩테스트도 준비해야한다 생각해서 ProgrammersLeetcode의 코딩테스트 연습문제를 풀고 있다. 또한, 도커를 공부할 것이다.
아직 끝나지 않았다. 봉사활동도 하지않아서 봉사활동(온라인..)도 신청했고 계절학기도 신청해서 오늘자(210119)로 마무리 됐다. (선형대수 만세)
이렇게 할게 많은 와중에 노영균교수님께서 AAIS LAB 인턴을 모집하셔서 바로 신청을 했다.
비록 늦게 신청을 했지만 교수님께서 받아주셔서 인턴으로써 활동을 하게 되었다.

이번방학 할 목록

  1. AAIS LAB 인턴
  2. JAVA8
  3. 스프링부트
  4. 도커
  5. 코딩테스트준비
  6. 봉사활동
  7. 계절학기

일단 목표는 크게 잡고 하나씩 쳐낼(?) 것이다. 아직까지는 만족스러운 방학생활이다.

근황은 이쯤에서 마무리하고, 랩실에서 할 내용에 대해 간략히 정리해보겠다.

Intro

내가 다룰 주제는 Age-gruop determination of living individuals using first molar images based on artificial intelligence이다.
교수님께서 가장 쉽게 구현할 수 있다고 강조해주신 자료이다. 아직 텐서플로우는 커녕 이론도 잘 모르는 상태라 가장 끌렸다. 이것은 두번째 이유이고 첫번째로는 재미있어보였다. 추리장르를 좋아하는 사람으로써 치아의 나이를 추론한다는 내용은 굉장히 흥미로웠기 때문이다.

Abstract

Dental age estimation of living individuals is difcult and challenging, and there is no consensus method in adults with permanent dentition. Thus, we aimed to provide an accurate and robust artifcial intelligence (AI)-based diagnostic system for age-group estimation by incorporating a convolutional neural network (CNN) using dental X-ray image patches of the frst molars extracted via panoramic radiography. The data set consisted of four frst molar images from the right and left sides of the maxilla and mandible of each of 1586 individuals across all age groups, which were extracted from their panoramic radiographs. The accuracy of the tooth-wise estimation was 89.05 to 90.27%. Performance accuracy was evaluated mainly using a majority voting system and area under curve (AUC) scores. The AUC scores ranged from 0.94 to 0.98 for all age groups, which indicates outstanding capacity. The learned features of CNNs were visualized as a heatmap, and revealed that CNNs focus on diferentiated anatomical parameters, including tooth pulp, alveolar bone level, or interdental space, depending on the age and location of the tooth. With this, we provided a deeper understanding of the most informative regions distinguished by age groups. The prediction accuracy and heat map analyses support that this AI-based age-group determination model is plausible and useful.

내가 정말 정말 간단하게 요약하자면 1586명의 첫번째 어금니 4개를 데이터를 통해 나이구간을 추정한다는 것이다. 특정한 나이를 구하는 것이 아니라 나이구간을 구한다. CNN을 통해 학습시키며 잇속(tooth pulp), 이틀뼈(alveolar bone level), 또는 수특부(interdental space)를 나이와 치아의 위치에 따라 파라미터로 받는다.
여기서 중요하게 봐야할 것은 convolutional neural network(CNN)과 파라미터를 다르게 받는다는 점이다. 모든 이를 같은 특징을 통해 구별하는 것이 아니라 나이대, 치아의 위치에 따라서 다르게 구별한다는 것이다. 이는 나중에 다루고(잘 모른다..) 이번 포스트에서는 CNN으로 간단하게 시작해보겠다.

CNN(Convolutional Neural Network)

위 그림과 같이 일반적으로 CNN모델은 3 * 3 필터를 주로 사용한다. 위 그림에서는 3개의 channel에서 3개의 convolutional filter를 사용하여 곱을하고 그 결과를 모두 합하는 것이다.
위에서의 곱이란 Convolution Product(합성곱)을 말한다. 그 수학적 공식은 다음과 같다.


수학적인 얘기는 아직 잘 모를뿐더러 나는 이론적인 얘기보단 용도와 결과에 대해서만 우선! 다룰 것이다.

CNN을 사용하는 이유는 위의 그림에서의 이유가 가장 크다. 같은 A라는 문자를 입력한다 해도 한 픽셀만 translation되어도 다른 이미지로 인식을 하기 때문에 문제가 된다. data가 굉장히 많아 많은 양을 학습시켰다고 하더라도 약간이라도 translation된다면 전혀 모르는 데이터가 되기 때문이다. 따라서 이를 사용하게 된다.

앞선 움짤(.gif)을 봤듯이 필터를 이용하여 얻은 output을 Maxpooling Layer을 통과시켜 이미지의 특징점을 잡을 수 있다고 한다.

여기서 Pooling Layer란 차례로 처리되는 데이터의 크기를 줄이는 것을 말한다. 이 과정으로 모델의 전체 파라미터의 수를 크게 줄일 수 있다.
풀링에는 MaxPooling과 AveragePooling이 존재하는데, MaxPooling은 해당 영역에서 최댓값을 찾는 방법이고, AveragePooling은 해당 영역의 평균값을 계산하는 방법이다.
이러한 과정을 거치는 이유에 대해서 잠깐 말하자면 더 높은 정확도를 위해서는 필터가 많아야 하는데, 필터가 늘어날 수록 Feature Map이 늘어난다.이는 딥러닝 모델의 Dimension이 늘어난다는 것이고, High Dimension 모델은 그만큼 파라미터의 수 또한 늘어난는 것이다.이는 Over fitting의 문제점 뿐만이 아니라, 모델의 사이즈와 레이턴시에도 큰 영향을 끼친다. 따라서 차원을 감소시킬 필요성이 있는데,이것을 하는 방법이 Pooling Layer를 활용하는 것이다. 오버피팅에 대해서는 다음에 또 batchnormalization을 다루며 할것이다.

우선 간단하게 정리한 내용은 위와 같다. 아직 모르는 내용도 많고 겉핥기식 공부라 많이 부족한 글이다. 나중에 이 글을 봤을 때 조금이나마 노력했다라는 생각이 들었다면 오늘의 나는 만족할 것이다.