# Convolutional Neural network의 레이어 구성 여기서, FullyConnectedLayer는 있는 경우도 있고 없는 경우도 있다. 대충 앞에서 다 봤으니 빠르게 알아보자 # ImageInputLayer - input size를 정의하고, 데이터를 정규화한다. (정규화는 데이터의 평균값을 구해서 빼는 방식) # Convolution Layer - Feature Extraction 하기 위해 사용된다. CNN에서 가장 핵심 레이어. - input 파일에 필터를 씌운다(Sliding Filter) - 필터 내부 값(가중치 값)은 내가 정하지 않음. 훈련을 통해 특징을 잘 찾아내도록 계속 수정해 가는 것. - 필터 사이즈만 정해주면 내부 가중치는 학습을 통해 만들어진다. - Transfe..
네트워크를 사용하는건 세가지 방법이 존재한다 1. Pretrained Network - 다른 사람이 만들어놓은 네트워크를 그냥 그대로 사용한다 2. Transfer Learning - 다른 사람이 만들어놓은 네트워크를 가져오되 내 입맛에 맞게 수정해 사용한다 - 네트워크 뒤편, Fully-Connected Layer, output Layer만 수정해서 사용하기만 해도 된다. - 상당수의 경우 Transfer Learning 네트워크만 사용해도 만족스러운 결과를 예측한다. - 단, input 입력 크기가 고정되어 있기 때문에 이 조건에 맞지 않으면 사용할 수 없거나, 성능이 매우 떨어진다. (input이 3채널 이상이거나, 이미지 크기가 맞지 않거나(업스케일링-> 픽셀 깨짐 -> 성능 하락) 등..) 3...
* 레이어의 상세 동작 원리는 다루지 않습니다. CNN을 통해 Image에서 Feature을 추출하는 레이어 [Convolutoin, Pooling, ReLU] 에 대해 알아보자 참고) CNN은 input으로 이미지만 받아야 하는게 아님 (n x m 2D 배열이면 다 됨) - 단, 이미지가 아니면 결과를 시각적으로 알아보기 힘들 뿐. 이번 수업에서는 squeezenet 모델을 전이학습으로 사용해본다. analyzeNetwork(net) 위 메소드를 사용하면 해당 모델의 레이어 구성을 시각적으로 확인할 수 있다. squeezenet 네트워크는 총 68개의 계층(레이어)가 있다는 것을 알 수 있다.. (대학원 석사쯤 밟고 AI 분야로 취업하면 저렇게 많은 레이어들을 하나하나 구성하고, 가중치 조절하고 하면서..
# Image Datastore 머신러닝을 하기 위해서는 수많은 데이터를 사용해 학습시켜야 한다. 이런 이미지들을 모두 불러와서서 학습시키기에는 프로그램에 너무 많은 부담이 된다. 따라서 매트랩에는 이미지를 전부 불러올 필요 없이(변수로 저장해둘 필요 없이), DataStore가 이미지의 메타데이터를 담아두고 있다가, 필요할 때 직접 꺼내쓰는 방식을 사용한다 => 메모리 절약, 속도 향상 내가 이해한게 맞나 모르겠다. 다른 한글 자료가 없더라. 영어가 필수야 필수;; 다음으로, 이미지의 상태가 정상이 아닌 경우(잘렸거나, 회전했거나, 찌그러졌거나 등..) 전처리 과정을 거칠 필요가 있다. (Preprocessing) 전처리 과정은 "augmentedImageDatastore" 이 담당해서 해준다. 지금까..
인공지능을 구현하는 방법인 머신러닝의 기법 중 하나인 "딥러닝"을 배워보도록 하자!!! 와! 신난다! 딥러닝 하면 가장 먼저 나오는 용어가 바로 CNN일 것이다. CNN이 뭔지, 어떻게 사용하는지부터 알아보자. # CNN(Convolutional Neural Network) 이란? CNN의 기본 구성은 위 사진과 같다. 세가지 큰 틀로 구성된다. 1. 데이터 input 2. 데이터에서 특징(Feature) 추출 3. 추출된 특징들에 점수를 매겨 하나의 클래스로 분류(Classification) [1. 데이터 input] m x n 2D 레이어를 input으로 넣어야 한다. m x n x 3 에서 "x3" 은 3채널(대개 R, G, B)를 가진 데이터라는 의미 [2. Feature Extraction] 추..
학교에서 인공지능 수업을 듣고 있는데 개인적으로는 범용성이 높은 파이썬을 이용했으면 좋겠는데 아쉽게도 매트랩을 사용해서 수업을 한다고 한다.. 졸업하면 매트랩 쓸 일 없을 것 같은데.... 라이센스 비용이 억을 넘어간다나 뭐라나 매트랩 쓰는 기업에 취직하면 일단 월급걱정은 없을듯 ㅋㅋ 아무튼 공부를 위해 블로그에 정리, 기록해두고자 함. 개념만 잘 알면 나중에 툴을 바꾸는건 할만하니까 ----- [인공지능을 들어가기 앞서 기본 개념 정리!] 인공지능을 검색하면 항상 같이 엮여나오는 단어들이 있다. 머신러닝(기계학습), 딥러닝, 빅데이터 등등. 온갖 뉴스들에서 인공지능이니 빅데이터니 하면서 많이 들어는 보았지만 뭔지 설명해 보라 하면 명확하게 설명하기는 난감했던 용어들.. 이참에 한번 정리하고 가보자 #1..