본문 바로가기

분류 전체보기68

CNN 훈련하기: cat / dog 이번 포스팅에서는 지난 시간 공부한 CNN을 활용하여 강아지와 고양이를 구분해보겠습니다. 강아지 vs 고양이 데이터 셋은 캐글에서 가져왔습니다. 해당 데이터는 케라스에 포함되어 있지 않으므로 직접 다운받아 데이터를 다운받아야 합니다. -데이터 내려받기 캐글에서 파일을 직접 다운받아 일일히 내려받는 데이터를 코랩에서 적용하는 방법은 데이터가 커질수록 비효율적입니다. 코랩에서는 캐글 api를 활용하여 캐글에 있는 데이터셋을 간편하게 다운받을 수 있도록 해줍니다. 굉장히 편리하죠! 따라서 캐글의 api를 활용하려면 키를 만들어 로컬 컴퓨터로 다운받아야합니다. 캐글 웹사이트에 접속해서 로그인한 후 account페이지로 이동하면 api섹션에서 키를 다운받을 수 있습니다. create new API tokken 클.. 2023. 2. 21.
합성곱 연산: Convnet / CNN 이해하기 딥러닝을 활용하는 분야 중 컴퓨터 비전은 초기 딥러닝의 부흥을 이끈 분야입니다. 현재 우리에게 널리 사용되는 구글, 네이버의 이미지 검색 / 카메라로 신분증 정보 입력하기 등이 있습니다. 최근에는 자율 주행, 로봇공학, AI 기반 의료진단, 농업 자동화와 같은 첨단 산업 및 연구 분야에서 딥러닝 비전 모델이 핵심이 되기도 합니다. 이번 포스팅에서는 컴퓨터 비전 초기 모델인 CNN에 대해 공부해보고 리뷰해보도록 하겠습니다. 그렇다면 이러한 딥러닝 비전 모델은 어떻게 사람의 눈을 대신하여 판단할 수 있는 기능을 할 수 있는 것일까요? 그것을 가능하게 한 것은 합성곱 신경망(convolutional neural network)라고 불리는 딥러닝 모델의 한 종류 덕분일 것입니다. 합성곱 신경망은 줄여서 CNN .. 2023. 2. 7.
K-Means clustering 이번 포스팅에서는 비지도 학습의 대표적인 clustering 알고리즘인 K-Means clustering에 대해 알아보도록 하겠습니다. 들어가기에 앞서 비지도 학습(unsupervised learning)에 대해 알 필요가 있습니다. 해당 포스트의 초반 부분을 참고해주세요! https://sanmldl.tistory.com/9?category=976947 데이터 전처리 with python (1) 이번 포스트에서는 파이썬을 활용하여 데이터 전처리 하는 방식에 대해 혼공머신 예제를 통해 알아보도록 하겠습니다. 1. 지도학습(supervised learning)이란? 들어가기에 앞서, 지도학습(supervised learn sanmldl.tistory.com 간략하게 말하면, 비지도학습은 지도학습과는 다르게.. 2023. 1. 31.
다양하게 케라스 딥러닝 모델 구축하기 케라스(keras)를 활용해서 딥러닝 모델을 만드는 API는 세 가지가 있습니다. 1. Sequential 모델 2. 함수형 API 3. Model subclassing(서브클래싱) 이번 포스팅에서는 위 세가지 keras API에 대해 학습해보고 리뷰하겠습니다. 각 방법마다 쓰이는 특징이 다르며 모델 구축의 복잡한 정도도 다릅니다. -Sequential 모델: 초보자 혹은 간단한 모델을 구축하기 위해서는 sequential API + 내장 층을 이용하여 모델을 구축할 수 있습니다. 사용적인 측면에서 간편하다는 장점이 있습니다. -함수형 API: 일반적인 문제를 다루거나 맞춤형 솔루션이 필요한 태스크, 엔지니어를 위해서는 함수형 API + 내장 층 or 함수형 API + 사용자 정의 층 + 사용자 정의 지.. 2023. 1. 26.
GBM기반 앙상블: XGboost, LightGBM 앞선 포스팅에서 결정 트리 기반의 앙상블 기법에 대해 배웠습니다. 이번 포스팅에서는 그 중 GBM(그레이디언트 부스팅 머신러닝)기반의 XGboost, LightGBM에 대해 간략히 알아보겠습니다. 1. XGboost XGboost는 그레이디언트 부스팅 프레임 워크를 기반의 결정 트리를 학습하는 머신러닝 알고리즘 입니다. 비정형 데이터(ex. text, image 등)에 대해서는 딥러닝 기반의 인공 신경망이 큰 효과를 보이지만, 정형 데이터에 대해서는 결정 트리 기반의 알고리즘이 가장 강력합니다. 결정 트리 알고리즘의 발전은 다음과 같습니다. 일반적인 Gradient Boosting과 경사 하강법을 사용한다는 점은 공통점입니다. 하지만 XGboost는 시스템을 최적화하고 알고리즘을 향상시켜 기존의 Grad.. 2023. 1. 16.
트리 앙상블 앙상블 기법 중 트리 앙상블에 대해 공부하고 해당 내용을 리뷰해보겠습니다! -앙상블 학습 머신러닝의 다양한 알고리즘 중 가장 강력한 알고리즘은 무엇일까요? 어떠한 데이터를 다루는지, 문제를 다루는 지에 따라 차이가 있겠지만 일반적으로 앙상블 알고리즘이 가장 강력할 것 입니다. 앙상블 학습(Ensemble learning)이란, 여러개의 모델 분류기를 생성하고, 그 예측을 결합하여 결과를 예측하는 머신러닝 기법입니다. 즉, 여러 모델을 결합하여 하나의 강력한 모델로서 더 나은 결과를 예측하는 것입니다. 앙상블 학습은 특히 정형 데이터가 주어졌을 때 매우 강력한 힘을 발휘합니다. 이번 포스팅에서는 사이킷런에서 제공하는 결정 트리 기반의 앙상블 학습을 알아보겠습니다. 1. 랜덤 포레스트(Random Fores.. 2023. 1. 16.
머신러닝의 목표: 일반화 머신러닝의 근본적인 이슈는 최적화와 일반화 사이의 줄다리기입니다. 최적화란 가능한 훈련 데이터에서 최고의 성능을 얻기 위해 모델을 조정하는 것이며(학습), 일반화란 훈련된 모델이 이전에 본 적 없는 데이터에서 얼마나 잘 수행되는 지를 의미합니다. 따라서 머신러닝의 목표는 결국 좋은 일반화 성능을 얻는 것입니다. 그렇다면 일반화 성능을 높이려면 어떻게 해야 할까요? -과소적합과 과대적합 일반화 성능을 높이기 전에 과소적합과 과대적합의 개념에 대해 알 필요가 있습니다. 훈련 초기에 최적화와 일반화는 상호 연관적입니다. 훈련 데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아집니다. 이런 상황이 발생할 때, 모델은 과소적합(underfitting)되었다고 말합니다. 즉, 모델의 성능이 계속 발전될 여지가 .. 2023. 1. 11.
트리 알고리즘: 결정 트리 이번 포스팅에서는 혼공머신이 결정 트리 알고리즘에 대해 설명한 내용을 리뷰해보도록 하겠습니다. 결정 트리(Decision Tree)는 머신러닝에서 쉽지만 성능이 좋은 알고리즘 중 하나입니다. 노드와 엣지로 구성된 트리 형식입니다. 맨 위의 노드를 루트 노드(root node)라고 하고, 맨 아래 달린 노드를 리프 노드(leaf node)라고 합니다. 각 노드를 엣지로 연결하여 구성됩니다. 결정 트리에서 각 노드는 훈련 데이터의 특성에 대한 테스트를 표현합니다. 예를 들면 키가 170보다 크다 or 작다로 키에 대한 테스트를 표현하는 것입니다. 이 때 테스트 결과를 True or False로 나타내며 일반적으로 하나의 노드는 두 개의 결과(가지,Branch)를 가집니다. 그 구조를 전체적으로 살피면 Flo.. 2023. 1. 10.
확률적 경사 하강법 지금까지 살펴본 머신러닝의 흐름은 다음과 같습니다. 데이터를 준비하여 데이터를 학습시키면 모델이 완성되고, 그 모델로 예측을 진행하는 형식입니다. 그렇다면 데이터가 적으면 학습된 모델의 성능이 좋지 않을 것입니다. 또한 데이터가 너무 많으면 데이터를 유지하는 비용이 많이 들어 비효율적일 것입니다. 이를 해결하기 위해서 나온 개념이 점진적 학습(온라인 학습)의 개념입니다. 이전의 방식은 오프라인 방식으로 파란색 부분을 제외한 부분입니다. 점진적 학습은 파란색 부분으로 학습이 이뤄집니다. 즉, 훈련한 모델을 가지고 새로운 데이터에 대해서만 조금씩 더 훈련하는 것이라고 생각하면 됩니다. -확률적 경사 하강법 점진적 학습의 가장 대표적인 알고리즘은 확률적 경사 하강법(stochastic gradient desc.. 2023. 1. 4.