DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

반응형

Matlab 15

[Matlab] K-Means Clustering (K-평균 군집화) 알고리즘 구현하기

1967년 처음 제안된 K-Means 클러스터링 (K-평균 군집화)은 군집화 알고리즘의 시작을 알린 데이터 마이닝 기법입니다. 파티션을 분리하는 기법 (Partitioning) 으로 분류되는 K-means 는 사전에 부여된 클러스터의 개수와 개체 간의 거리를 기반으로 전체 클러스터의 중심과의 거리를 최소화 하며 군집을 수행합니다. 이번 포스팅에서는 간단하게 K-Means 알고리즘을 살펴본 뒤, 매트랩에서 직접 알고리즘을 구현해보도록 하겠습니다. 1. K-Means 알고리즘의 목표 $n$ 개의 데이터를 가지는 $d$ 차원 데이터 집합 $X=(x_1,x_2,...,x_n)$가 있습니다. 쉽게 예를 들기 위해, $d=2$를 가지는 2차원 공간 데이터로 가정하게되면 그림 1과 같이 표현이 가능합니다. 데이터 집..

Matlab 2020.11.24

[Matlab] 매트랩을 이용한 다층신경망 (Multi-Layer Perceptron: MLP) 구현하기 (XOR 문제)

1986년 역전파 알고리즘 (Backpropagation)의 개념이 도입되면서 Machine Learning이 다시 주목받게 되었습니다. 기존 단층 신경망으로는 해결할 수 없었던 비선형 문제 해결이 가능한 다층 신경망은 현재 응용되고 있는 CNN(Convolutional Neural Networks)의 기반이 되고 있습니다. 이번 포스팅에서는 매트랩을 이용한 다층신경망에서 해결가능한 XOR 문제를 구현해보록 하겠습니다. XOR Gate vs MNIST Dataset 개인적인 생각이지만, 처음 머신 러닝에 입문하신다면 MINIST 데이터셋과 텐서플로우, 파이토치 등의 라이브러리를 통한 분류문제 구현으로 시작하기 보다는 파이썬이나 매트랩을 통해 직접 알고리즘을 작성하며 XOR 문제와 같은 선형회귀 문제부터 ..

Matlab 2020.11.01

[Matlab] 객체 탐지 알고리즘 학습을 위한 이미지 데이터 라벨링 #2

데이터 라벨링은 데이터를 가공하는 1차 작업입니다. 아기에게 말을 가르칠 때 사물의 사진을 보며 이름을 하나씩 알려주는 것처럼 AI 모델이 학습할 데이터에 '이것은 사람' '이것은 자동차' '이것은 강아지' 이런식으로 입력해주는것입니다. 여기서 사물의 사진은 입력되는 데이터(Input Data) 이며 이름은 출력으로 목표하는 목표값(Target)이 됩니다. 여기서 목표값을 부여하는 행위를 라벨링 작업이라고 부르며 전체 AI 시스템 구축에 80~90% 이상이 소요된다고 합니다. (원문기사) 실제 양질의 데이터 확보와 높은 신뢰도를 갖는 AI 시스템 구축에 라벨링은 무척 중요합니다. 오늘은 객체 탐지 알고리즘으로 활용하기 위한 라벨링에서 적용되는 몆가지 원칙을 알아보겠습니다. 1. 편향을 막기 위한 빅데이터..

Matlab 2020.07.31

[Matlab] 객체 탐지 알고리즘 학습을 위한 이미지 데이터 라벨링 #1

현재 딥러닝 객체 인식 분야에서는 학습과 평가 실험을 위한 다양한 데이터셋이 존재합니다. 대표적으로 COCO (Common Objects in Context), KITTI Vision Benchmark Suite 등의 대규모 데이터가 있지만, 실제 시스템에 맞는 딥러닝 객체 탐지 알고리즘을 적용하기 위해서는 결국, 수집된 데이터을 통해 최적화해야합니다. 지도학습으로 정의되는 모든 머신러닝 알고리즘은 학습을 하기 위해 입력되는 데이터(Input)와 데이터를 명시하는 클래스 또는 라벨(Output)이 필요합니다. 단순히 많은 데이터뿐만 아니라 데이터를 알려주는 클래스 정보가 함께 있어야 학습을 진행할 수 있죠. 오늘은 Matlab의 Computer Vision Toolbox에 포함되어있는 Image labe..

Matlab 2020.07.14

[Matlab] 매트랩을 이용한 실시간 그래프 그리기

매트랩은 다양한 분야에서 분석하거 설계하는데 활용되고 있습니다. 직관적으로 데이터를 확인할 수 있어 데이터분석 입문으로 시작해도 좋다 생각합니다. 특히, 논문에 사용될 그래프를 도시화하는데 정말 쉽습니다!!! 저 역시, 석사 시절 주력으로 사용했습니다... 오늘은 데이터를 실시간 그래프로 업데이트하는 방법과 간단한 응용을 해보도록 하겠습니다. 1. for문을 이용한 난수 데이터 생성기 result = 0; for i = 1 : 1000 result(i) = rand(1,1);plot(result); drawnow;% pause(1) end 핵심은 drawnow입니다. for문 안에서 그래프를 업데이트 할 수 있는 함수입니다. 시간 간격을 두고 업데이틑 하고 싶다면 drawnow 대신 pause() 함수를..

Matlab 2020.07.05
반응형