본문 바로가기

공부/AI

Convolutional Neural Network 공부했다.(2) CNN이 양이 상당해서 파트 2로 나누어서 포스팅을 한다. Object Detection!! 이름과 사진에서 바로 직감이 왔을 것이다. 그 동안에는 하나의 물체에 대한 판별을 하였다면 이번에는 다양한 물체가 있는 사진에서 각각의 물체가 무엇인지 인식하는 것을 해 보려 한다. 어떻게 할 수 있을까?? 생각을 조금 해 보았다. 사진에서 물체 같아 보이는 것을 자르고 이것만 CNN을 돌려서 무엇인지 알아낸 다음 다시 그 위치에 Bounding Box를 쳐준다~ 으, 손봐야 할 것이 많다. 옛날에는 이렇게 했다고 한다. Object Detection에 대해서도 배포되는 모델들이 있다. 이들을 사용해서 Transfer Learning을 할 수도 있는 Pretrained 모델이다. 나는 개인적으로 YOLO에 대해서..
Convolutional Neural Network 공부했다. AI-PM의 마지막 강의인 Convolutional Neural Network(CNN)이다. 딥 러닝이라고 했을 때 가장 먼저 생각나는 대표적인 알고리즘이다. 그리고 딥 러닝 붐을 일으킨 장본인이기도 하다. 이전 Neural Network에서 실습했던 구조는 다음과 같다. 모든 뉴런들이 서로 거미줄 같이 촘촘하게 연결되어 있었다. 그래서 학습시켜야 할 매개변수들도 무지하게 많았었다. 이러한 구조를 Fully Connected Layer 구조라고 한다. 나도 그렇고 이 Fully Connected Layer가 가진 고질적인 문제들이 있다. 위에서 밝히고 있는 바와 같이 매개변수가 너무 많아서 연산이 복잡함은 물론이고, 서로 관계가 없는 픽셀들 사이에도 패턴을 찾으려고 한다. 이것이 무슨 뜻인지 글로만 보아..
Neural Network 공부했다. - Multi Layer Neural Network && Autoencoder 지난번에는 Single Layer Neural Network에 대해서 공부하였었다. 93%정도의 놀라운 정확도를 보였지만, 이해할 수 없는 실수들을 하기도 하였다. 오늘은 그 개선을 위해서 Multi Layer Neural Network에 대해서 배우고, Autoencoder를 배우면서 실습도 해본다. 아주 Deep하게 만들지는 않고 중간게 Hidden Layer하나를 추가해 보도록 하자. 이 Hidden Layer에서 Neuron의 개수는 500개로 하기로 한다.(그냥 적당하게 해준 것이라고 한다.) 당연이 구해야 하는 매개변수의 값들도 엄청나게 많아진다. 지난 Single Layer Neural Network에서는 7850개를 구하였는데, 이번에는 무려 397,510개의 매개변수를 찾는다. 아마 연산..
Neural Network 공부했다.- Single Layer Neural Network 추천 시스템과 방법론들을 배우면서 잠시 잊고 있었는지는 모르겠지만, 이 강의의 최종 목표는 귀여운 고양이 사진이 있을 때 이를 '삐빅, 고양이다~' 라고 말해주는 인공지능을 설계하는 것이다. 그래서 지금까지는 그의 일환으로 Linear Regression과 Logistic Regression을 배웠던 것이고, 이번에는 Neural Network를 배우고자 하는 것이다. 강의에서는 들어가기 전에 복습부터 시켜준다. Linear Regression이 무엇이었지?? Data들의 어떠한 경향을 알아내는 것이었다. 그러기 위해서 가설을 세웠고 이것을 Hypothesis라고 불렀다. Linear라는 이름에 걸맞게 이 방법에서는 선형적인 가설을 세웠고, 각 항에 알맞는 매개변수 θ들을 찾는 것이 목표가 되었었다. 그..
Machine Learning Methodology & analysis 공부했다 계속해서 AI에서 사용하는 알고리즘들에 대해서 공부를 하고 있는 중이다. 항상 그러하듯이 이론과 실제는 다르다. 내가 좋아하고 자주 듣기도 하는 말이 있는데 바로 '하드웨어는 거짓말을 하지 않는다.'라는 것이다. 여기에서 하드웨어는 컴퓨터 그 자체를 의미하기도 한다. 내가 짠 프로그램이 작동하지 않는다고?? 하드웨어는 거짓말을 하지 않는다. 그냥 내가 잘못한거다!!!! 차치하고, 오늘 배운 내용들은 크게 다음과 같다. ● 데이터셋 나누기● Underfitting / Overfitting● Skewed Classes ● Precision/Recall 데이서셋을 나눈다는 것이 무슨 말인가 하면, 우리가 100개의 데이터를 가지고 있다고 하였을 때, 그것들을 모두 학습하는데 써버린다면, 지금 가지고 있는 데이..
Recommender System 공부했다. 대뜸 광고하는 것도 아니고, 쇼핑몰 사이트 '쿠팡'의 일부를 왜 올린거지??? 싶을까 싶다. 그런데 이는 오늘 배운 내용 Recommender System과 관련이 깊다. 글자 그대로 해석하면 '추천 시스템'이 되는데 쇼핑몰 사이트를 이용하다 보면, 내가 구입하거나 조회한 상품과 유사도가 높은 다른 제품들을 엮어서 추천을 해주는 경우도 있고, 페이스북 등을 하다 보면 내 친구들이 좋아한 페이지가 뜨면서 나에게도 구독을 요청하는 경우를 심심찮게 볼 수 있다. 이 작업들을 어떤 알바생이 고생하면서 엮어주는 것이 아니고, AI가 해주는 것인데, 오늘은 그 방법에 대해서 공부를 하였다. 출처 : ai-pm alina 이렇게 추천 시스템의 종류들을 분류할 수 있는데 그 중에서도 크게 다음 3 가지를 소개한다. ●..
Logistic Regression 공부했다. 지난 시간 Linear Regression에 대해서 배워 보았는데, 이는 Input과 Output Data들이 있을 때, 이를 이용해서 Data들의 분포가 선형을 띠고 있을 것이라고 가정한 상태에서 각 항의 매개변수의 값의 조정을 통해서 이 분포를 실제로 이끌어내는 것이었다. 한마디로, 이미 있는 Data들을 분석하여 내가 가지고 있는 Input Data가 어떤 Output을 만들어 낼 것인가에 대한 이야기였다. 그런데 Data의 Output이 항상 가격이나, 판매량과 같은 단일 숫자가 아닐 수도 있다. 예를 들어, 꽃은 같은 품종이라도 여러 종류가 있는데, 내가 가지고 있는 이 꽃이 어느 종류에 속할 것인지 알고 싶다고 하자. 오늘은 Logistic Regression을 통해서 이 분류(Classifi..
Linear Regression 공부했다 Alina라는 회사에서 제공하는 AI 강의들을 듣고 있다. 양도 많지 않고, 파이썬 코드도 제공을 해 주어서 매일 한 챕터씩 공부를 해도 일주일 조금 걸릴 것 같다. 그럼 첫 강의로 Linear Regression을 복습해본다. 우선 결론부터 말해 보자면, 우리가 준비해 주어야 하는 것은 위의 4가지이다. Input과 Output Data는 서로 상관관계는 있지만, 인과관계는 없어야 한다. 예를 들어 위의 예시에서, 아이스크림 판매량과 해수욕장 익사자 수 사이에 무슨 관계가 있는지 살펴보자면, 아이스크림이 많이 팔렸다는 것은 그만큼 날씨가 더웠다는 것이다. 그리고, 그만큼 날이 더우면 해수욕장의 익사자 수도 많을 것이란 것을 알 수 있다. 다만, 그렇다면 아이스크림이 많이 팔려서 익사자가 많은 것인가 하..