본문 바로가기

반응형
SMALL

Machine, Deep Learning/Machine, Deep Learning 용어 설명

opencv - grayscale mode vs gray color conversion / 왜 BGR ? 안녕하세요. 꼬동입니다. 이미지 분석 스터디를 들어가게 되어서, 그 것의 과제 중 하나인 Open CV, Color Conversions 이론을 공부하게 되었습니다. 솔직히 1도 모르겠습니다. ㄹㅇ 그래서 이것 저것 찾아보는데, 재미는 있더라고요. 그 장황한 제 일대기를 적어보려합니다. opencv 는 뭐야 ? 인텔이 만든 이미지 프로세싱에 중점을 둔 오픈 소스 컴퓨터 비전 라이브러리(그래서 opencv인거임 ?????)입니다. 현재 인텔은 opencv에 손을 털었다고 하네요. 저는 요걸 python으로 접했었죠. 그래서 python 만 지원하는 오픈 소스 라이브러리인 줄 알았는데, 본래 C++로 개발이 되었다고 하네요? 그래서 docs 들어가보니, 실제로 C++로 parameter 설명이 되어있었습니다.. 더보기
순환신경망(Recurrent Neural Networks) 음악, 동영상, 에세이, 시, 소스 코드, 주가차트.. 이 것들의 공통점은 바로 시퀀스인 점입니다. 음악은 음계들의 시퀀스, 동영상은 이미지의 시퀀스, 에세이는 단어들의 시퀀스로 볼 수 있습니다. 시퀀스는 가변적이죠. 마치 소설이 한 페이지짜리도 있고 열권짜리 장편소서도 있는거 처럼. 기존의 뉴럴 네트워크 알고리즘은 이미지처럼 고정된 크기의 입력을 다루는 데는 탁월하지만, 가변적인 크기의 데이터를 모델링하기에는 적합하지 않습니다. RNN 이해하기 RNN(Recurrent Neural Network, 순환신경망)은 시퀀스 데이터를 모델링 하기 위해 등장했습니다. RNN이 기존의 뉴럴 네트워크와 다른 점은 '기억'(Hidden state)을 갖고 있다는 점입니다. 네트워크의 기억은 지금까지의 입력 데이터를 .. 더보기
활성화 함수(Activation function)이란? 활성화 함수란 어떠한 신호를 입력받아 이를 적절한 처리를 하여 출력해주는 함수입니다. 이를 통해 출력된 신호가 다음 단계에서 활성화 되는지를 결정합니다. 위에서 설명한 활성화 함수의 개념을 표현한 식입니다. input data => {activation function} => output data 이러한 활성화 함수의 종류는 여러가지가 있습니다. 그 중 유명한 3가지를 알려드도록 하겠습니다. 1. step function 가장 기본이 되는 활성화 함수입니다. 임계값을 기준으로 활성화 되거나 혹은 비활성화 되는 형태를 보입니다. 식만 보셔도 그래프 모양이 계단 형태인 것을 알 수 있습니다. 2. sigmoid function 이 함수는 항상 0과 1사이의 값만 가질 수 있도록하는 비선형 함수입니다. ste.. 더보기
컨볼루션 신경망 (CNN, Convolutional Neural Network) 컨볼루션 신경망은 입력된 이미지에서 다시 한번 특징을 추출하기 위해 마스크(필터, 윈도 또는 커널이라고도 합니다)를 도입하는 기법입니다. 예를 들어서 3x3 마스크를 미리 준비합니다. 각 칸에는 가중치가 들어있습니다. 그 가중치의 값을 곱해서 새로운 Convolved Feature을 만들어 냅니다. 이렇게 만들어진 층을 컨볼루션(합성곱)이라고 부릅니다. 앞서 구현한 컨볼루션 층을 통해 이미지 특징을 도출했지만, 그 결과가 여전히 크고 복잡하면 이를 다시 한번 축소해야합니다. 이 과정을 풀링(pooling) 또는 서브 샘플링(sub sampling)이라고 합니다. 풀링 기법 중 맥스 풀링(max polling)을 가장 많이 씁니다. 정해진 구역 안에서 가장 큰 값만 다음 층으로 넘기고 나머지는 버립니다. .. 더보기
원-핫 인코딩 (One-Hot encoding) 텍스트를 유의미한 숫자(벡터)로 바꾸는 가장 손쉬운 방법론이 '원-핫 인코딩 (One-hot-encoding)' 입니다. 이는 N개의 단어를 각각 N차원의 벡터로 표현하는 방식입니다. 즉, 단어가 포함되는 자리엔 1을 넣고 나머지에는 0을 넣습니다. 예를 들어 [인간, 펭귄, 문어, 사람]이라면 인간을 표현하는 벡터는 [1, 0, 0, 0]이 되는 식입니다. 나름대로 좋은 성능을 가지고 있고, 지금까지도 많이 사용하고 있지만, 단점이 있습니다. 바로 컴퓨터가 단어의 의미 또는 개념 차이를 전혀 담지 못한다는 것입니다. 예를 들어 '과학'과 '공학'은 밀접한 관계가 있지만, 컴퓨터는 이를 알지 못하고 '과학'과 '수박'의 관계처럼 아주 의미없게 생각합니다. 또한, 차원 수가 일정 수준을 넘어서면 성능이 오.. 더보기
랜덤 포레스트(Random Forest)란? 랜덤 포레스트(Random Forest)는 주어진 학습 데이터에 따라 생성되는 의사결정트리가 매우 달라져 성능과 변동의 폭이 크다는 단점을 보완하기 위해서 만들어진 기법입니다. 주어진 트레이닝 데이터 세트에서 무작위로 중복을 허용해 n개를 선택하고 n개의 데이터 샘플에서 데이터 특성값을 중복 허용 없이 d개 선택합니다. 이를 이용해 의사결정트리를 학습하고 생성합니다. 이와 같은 방법을 k번 반복하여 생성된 의사결정 트리를 이용해 예측하고, 예측된 결과의 평균이나 가장 많이 등장한 예측 결과를 최종 예측값으로 결정합니다. 월등히 높은 정확성과 간편하고 빠른 학습 및 테스트 알고리즘, 변수소거 없이 수천 개의 입력 변수들을 다루는 것이 가능하다는 점 등 다양한 장점이있는 학습 방법의 일종입니다. 이상 랜덤 .. 더보기
결정 트리(Decision Tree)란? 결정 트리 학습법(Decision Tree Learning)은 어떤 항목에 대한 관측값과 목표값을 연결시켜주는 예측 모델로써 결정 트리를 사용합니다. 결정 트리 학습법은 몇몇 입력 변수를 바탕으로 목표 변수의 값을 예측하는 모델을 생성하는 것을 목표로 합니다. 위의 글은 타이타닉호 탑승객의 생존 여부를 나타내는 결정 트리로서 잎 아래의 숫자는 각각 생존 확률과 탑승객이 그 잎에 해당될 확률을 의미합니다. 그림의 트리 구조에서, 각 내부 노드들은 하나의 입력 변수에, 자녀노드들로 이어지는 가지들은 입력 변수의 가능한 값에 대응됩니다. 결정 트리 학습법은 계산복잡성 대비 높은 예측 성능을 내는 것으로 소문나있어서 지도 분류 학습에서 가장 유용하게 사용되고 있는 기법 중 하나입니다. 하지만 비선형 데이터 분류.. 더보기
Loss Function vs Cost Function vs Objective Function 실제로 이 세가지 함수에 대해 큰 차이를 두지 않지만, 미묘한 차이를 알아봅시다. 1. Loss Function Loss Function은 single data set을 다룹니다. 2. Cost Funcition Loss Function의 합, 평균 에러를 다룹니다. 즉, single data set이 아니라 entire data set을 다룹니다. 그냥 순간순간의 loss를 판단할 땐 loss function을 사용하고 학습이 완료된 후에는 cost function을 확인하면 될 것 같습니다. 3. Objective function 모델(함수)에 대하여 우리가 가장 일반적으로 사용하는 용어로서 최댓값, 최솟값을 구하는 함수를 말합니다. 애초에 cost function과 loss function 모두 비.. 더보기

반응형
LIST