본문 바로가기

Study doc.

(35)
[cs231n] 이미지 분류 초간단 정리 사람은 사진을 보면 자연스럽게 많은 정보를 얻게 됩니다. 여름 바닷가 사진을 보고 날씨 정보, 놀고 있는 사람 수, 사람들의 감정, 행위 등 본인도 모르게 많은 생각을 하는것처럼 말이죠. 그런데 단지 사진만 보았을 뿐인데 어떻게 이렇게 많은 정보를 얻을 수 있었을까요? 바로 경험을 통한 학습 때문입니다. 그렇다면 컴퓨터에게도 사람만큼 학습을 시킨다면, 컴퓨터도 사진을 보고 같은 정보를 얻을 수 있을까요? 이런 의문으로 시작하는 분야가 '컴퓨터 비전' 입니다. 컴퓨터 비전에 대해 깊이 공부하기 전에 컴퓨터가 이미지를 인식하는 원리부터 알아봅시다. 사실 이미지는 컴퓨터가 보기에 숫자로 이루어져 있습니다. 이미지는 픽셀 단위로 쪼갤 수 있고, 그 픽셀 하나에는 RGB 값으로된 숫자들이 있는 것입니다. 엥? 그..
[cs231n] 오차역전파(propagation)를 이용한 gradient 계산 지난 포스팅에서 최적화의 방법으로 두 가지 개념이 나왔습니다. 바로 numerical gradient와 analytic gradient 인데요, numerical gradient 방법은 하나하나 다 계산하기 때문에 정확하지만 시간이 너무 오래걸린다는 단점이 있다고 했습니다. 그래서 보통 w를 구할때 analytic gradient 방법을 사용한다고 공부했었는데, 오늘은 analytic gradient 방법의 원리에 대해서 자세히 공부해보겠습니다. 순서 computational graph 스칼라의 backpropagation backpropagation의 이해 local gradient/ global gradient(upstream gradient) 벡터의 backpropagation 1. computat..
[ML] LightGBM 이해하고 사용하자 순서 개념 기본 구조 파라미터 1. 개념 * 이 글을 읽기 전에 앙상블 포스팅과 XGBoost 포스팅을 읽고 오시는 것을 추천드립니다. XGBoost와 LightGBM은 결정트리(Decision Tree) 알고리즘 기반의 대표적 부스팅 앙상블 기법입니다. 간단하게 설명드리자면 트리의 오차(loss)를 점점 수정해나가는 방법으로 성능을 향상시키는 아이디어 인데요, 최근 캐글과 데이콘의 상위권 커널들에서 주로 사용되어 유명세를 타고 있습니다!! 그렇다면 지난번에 공부한 XGBoost와 LightGBM은 어떤 차이가 있을까요? 우선 LightGBM은 XGBoost의 시간적 한계를 보완한 알고리즘이라고 기억하시면 될 것 같습니다. 어떻게 시간적 한계를 보완했을까요? 바로 노드의 분할 방법에 차이를 두었습니다. ..
[ML] 결정트리(Decision Tree) 한 번에 정리하기 * 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 결정트리 알고리즘의 개념 개념 구조 하이퍼파라미터 튜닝 특성중요도 1. 결정트리 알고리즘의 개념 1-1. 개념 결정트리 알고리즘을 한 마디로 설명하면 스무고개 입니다. 그런데 기가막히게 예리한 질문지들을 척척 만들어내는 녀석입니다. 예를 들어 강아지, 고양이, 새 사진이 각각 100장씩 섞여있는 그룹에서 이 세 가지를 정확하게 분류하려면 어떤 질문들이 필요할까요? 일단 날개가 있는지로 새를 정확하게 분류할 수 있을 것 같습니다. 그리고 날개가 없는 강아지와 고양이는 눈동자의 모양이 날카로운지에 따라 분류할 수 있을 것입니다. 하지만 이 기준으로 강아지와 고양이를 100% 분류할 수 없기 때문..
[cs231n] kNN보다 나은 선형분류(Linear Classification) 지난 포스팅에서 이미지 분류 기법 중 하나인 k-NN 에 대해 공부해보았습니다. 하지만 모든 사진의 픽셀 행렬값을 연산하는 방법은 너무 비효율적이기 때문에 실무에서는 사용하지 않는다고 했고, 오늘은 그 문제점을 극복한 선형 분류(Linear Classification) 기법을 공부해보겠습니다. 순서 선형 분류의 원리 오차 함수(Loss function)의 등장 규제 (Regularization) 최적화 (Optimization) 결론 1. 선형 분류의 원리 말 그대로 선형 분류는 이미지를 선형식으로 나타낸 후 분류하는 기법입니다. 이전 포스팅에서 이미지는 픽셀별 숫자의 형태, 즉 행렬의 형태로 나타난다고 했었는데요, 이 행렬의 특성을 이용하여 가중치 w와 편향값 b를 추가하여 선형식으로 변환하는 것입니다..
[cs231n] 컴퓨터는 고양이 사진을 보고 고양이인지 알까? 순서 컴퓨터는 이미지를 어떻게 인식할까? 컴퓨터에게 이미지를 어떻게 학습시킬까? NN (Nearest Neighbor) k-NN (k-Nearest Neighbor) 결론 1. 컴퓨터는 이미지를 어떻게 인식할까? 위 사진은 강아지와 고양이 중에 어떤 사진인가요? 네!! 바로 고양이 사진입니다. 어떻게 고양이 사진이라고 생각하게 되었나요? 아마 어렸을때부터 수많은 고양이들을 봤고, 그 동물이 고양이라는 것을 학습했기 때문일 것입니다. 그렇다면 컴퓨터가 이 사진이 고양이 사진이라는 것을 알 수 있게 하려면 어떻게 해야할까요? 우리가 고양이를 학습한 것과 마찬가지로, 컴퓨터에게 수억만장의 고양이 사진을 보여주면서 고양이라고 학습시키면 될 것 같습니다. 이렇게 학습시키는 방법을 '데이터 기반 접근법(Data-D..
[cs231n] 사람이 보고 느끼는 것을 컴퓨터가 할 수 있을까? 컴퓨터 비전(Computer vision) 다음 사진을 3초간 보고난 후 떠오른 생각을 이야기해봅시다. 자!! 이제 어떤 생각이 드셨나요?? 놀람, 당황, 슬픔, 기쁨, 웃김 중에 어떤 감정이 들었나요? 아마 대부분 웃김을 선택하셨을텐데요, 그 과정에 어떤 프로세스가 있었는지 되짚어봅시다. 먼저 체중계에 올라간 사람이 생각했던 몸무게보다 훨씬 높은 숫자를 보고 당황하고 있습니다. 하지만 이는 뒤에 있는 사람이 몰래 발을 올렸기 때문인데요, 여기서 주목해야할 점은 장난을 치고 계신 분이 미국의 전 대통령 이라는 점입니다. 보통 대통령이라고 하면 근엄하고 진지한 이미지가 그려지기 때문입니다. 이런 정보를 사람이 아닌 기계도 생각할 수 있을까요? 그게 바로 '컴퓨터 비전(Computer Vision)'의 시작..
[Python] 알고 써라!! 판다스(Pandas) * 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 안녕하세요!! 지난번에는 넘파이(Numpy) 패키지에 대해서 공부했습니다. 만약 넘파이에 대해 잘 모르신다면 이전 포스팅을 먼저 읽어보고 오시는 것을 추천드립니다. 오늘은 파이썬에서 넘파이와 더불어 정말 많이 사용되는 "판다스(Pandas) 패키지"에 대해서 공부해보겠습니다. 넘파이 패키지가 1차원 배열의 처리를 도왔다면, 판다스 패키지는 2차원 이상의 데이터 처리를 돕는다고 할 수 있습니다. 역시 딱딱한 설명으로는 잘 와닿지가 않죠? 천천히 생각해봅시다. 사실 우리는 알게 모르게 판다스를 많이 사용해왔습니다. 로컬 저장소에 있는 파일을 가져올때, 가져온 데이터를 전처리 할 때(ex. 결측치 처리..