muke0822의 등록된 링크

 muke0822로 등록된 네이버 블로그 포스트 수는 27건입니다.

분류 성능 평가 (Evaluation method) [내부링크]

이번 포스팅에서는 분류 성능 평가의 척도에 관한 내용을 다뤄보겠습니다. 우리는 머신러닝 알고리즘을 통해서 더 나은 모델을 만들기 위해 그것의 성능을 평가하곤 합니다. 정확한 성능 평가를 위해서는 그 목적에 맞는 평가 지표를 사용해야 할 것입니다.일상에서 우리는 대개 어떤 기능에 대한 성능을 평가하고자 할 때 정확도를 사용하곤 합니다. 하지만 정확도를 성능 평가의 척도로 사용하는 것이 항상 옳을까요? 아래의 예를 살펴보겠습니다.어떤 대학교의 학생 수는 총 3000명이라고 할 때, 그 중 암에 걸린 학생은 단 1명이 라고 가정해보겠습니다. 이때 제가 모든 입력에 대해서 암에 걸리지 않았다고 분류하는 엉터리 같은 분류기.......

Efficient BackProp (part.1) [내부링크]

Efficient BackPropBackpropagation은 간단한 컨셉과 좋은 효율성 덕분에 neural network에서 널리 쓰이는 learning 알고리즘입니다. 그것이 대개 좋은 성능을 발휘하지만, 어떤 경우에는 전혀 그렇지 못합니다. 이는 마치 과학보다는 예술과 가까워 보입니다. backprob을 이용하여networ를 디자인하고 훈련하는 것은 많은 자의적 선택지를 요구합니다. 이를테면 node의 개수와 타입, layers, learning rage, training set 그리고 test set과 같은 것들이 그것입니다. 하지만 이 선택지들은 데이터에 의존적이며 대체로 문제들을 품고 있기 때문에 그것들에 대한 완벽한 선택지는 존재하지 않습니다. 따라서 본 논문에서는 실험과 이론들을 통.......

행렬식(determinant)과 역행렬(inverse matrix) [내부링크]

이번 포스팅에서는 행렬식과 역행렬에 대해서 살펴보겠습니다. 행렬식과 역행렬을 제대로 알아보기 위해서는 소행렬식과 여인수의 개념을 먼저 정리해야합니다.1. 소행렬식(Minor matix)과 여인수(Cofactor)소행렬식이란 n차 정방행렬 A가 존재할때, 행렬 A의 i행과 j열을 제외한 나머지 부분에 해당하는 행렬의 행렬식을 의미하고, Mij 로 표현합니다. 이렇게 정의한 소행렬식에 부호를 붙인 것을 여인수라고 하고, Cij (=(-1)i+j · Mij)로 표현합니다. 행렬 A가 아래와 같을 때 소행렬식과 여인수를 표현하면 아래와 같습니다.2. 행렬식 (Determinant)행렬식이란 정방행렬을 스칼라에 대응시키는 함수라고 할 수 있습니다. n차 정방행렬.......

기본 행렬(elementary matrix)과 역행렬(inverse matrix) [내부링크]

저번 포스팅에서는 행렬식과 수반행렬을 알아보았고, 이를 통해서 역행렬이 정의되는 것을 살펴보았습니다. 이번 포스팅에서는 조금 더 나아가 기본 행렬의 정의와 성질을 다루고, 역행렬을 구하는 또 다른 방법을 설명하겠습니다.1. 기본 행렬 (Elementary matrix)먼저 기본 행렬은 단위행렬 In에서 기본 행 연산을 한 차례 수행하여 얻어지는 행렬로 정의되며, E로 표현됩니다. 기본 행 연산은 어떤 행을 실수 배 하는 것, 어떤 행을 다른 행에 더하는 것, 어떤 행을 실수배 하여 다른 행에 더하는 것 총 3가지로 정의됩니다. 일반적으로 아래와 같이 어떤 n차 정방행렬 A에 기본 행 연산의 결과는 A에 그에 해당하는 기본 행렬을 곱하는 방.......

고윳값(eigen value)과 고유벡터(eigen vector) [내부링크]

이번 포스팅에서는 고윳값(eigen value)과 고유벡터(eigen vector)에 대해서 간단히 알아보도록 하겠습니다.1. 고윳값 (Eigen value)n차 정방행렬 A와 스칼라λ에 대하여 AX = λX를 만족하는 벡터 X(≠0)가 존재할 때 λ를 A의 고윳값이라고 하고, X를 고유벡터라고 합니다. 행렬 A에 대하여 λ가 고윳값이 될 필요충분조건은 det(A-λI)=|A-λI|=0 입니다. 행렬 A가 아래와 같을 때 고유방정식으로부터 고윳값을 구해보도록 하겠습니다.2. 고유공간(Eigen space)과 고유벡터(Eigen vector)n차 정방행렬 A의 고윳값이 λ라고 할 때, λ에 대응하는 고유벡터들이 이루는 부분공간을 고유공간이라고 합니다. 선형 사상 T의 표.......

ASPP(Atrous Spatial Pyramid Pooling) [내부링크]

이번 포스팅에서는 ASPP(Atrous Spatial Pytamid Pooling)에 대해서 살펴보도록 하겠습니다. CNN을 이용한 객체 검출과 분류는 여러 convolution layer와 pooling layer를 거쳐 이루어집니다. 이 과정에서 역전파를 통해 filter 들은 목적에 맞는 기능을 하도록 학습됩니다. 이에 따라서 feature map의 각 channel들은 의미있는 정보를 가지게 될 것입니다. 비록 이러한 feature map들이 큰 특징들을 잘 잡아내지만, 디테일한 특징들은 잘 잡아내지 못할 수도 있습니다. 보통은 layer가 깊어질수록 feature map의 size가 작아지며 input image의 정보를 놓칠 수 있기 때문이죠. image segmentation 분야에서 이를 해결하기 위해 제안된 것이 Atro.......

로지스틱 회귀의 구현 [내부링크]

이전 포스팅에서 로지스틱 회귀의 콘셉트와 손실 함수의 유도 과정을 설명한 바 있습니다.이번에는 로지스틱 회귀를 파이썬으로 구현하는 과정을 천천히 살펴보겠습니다.1. 먼저 로지스틱 회귀 클래스를 생성하고 생성자를 정의합니다.생성자는 X, Y를 매개변수로 받습니다. 이를 통해서 클래스 맴버 X, Y를 생성하여 저장합니다. 그리고 각 독립변수에 곱해질 가중치를 생성하기 위해 표준 정규분포에서 난수를 생성합니다. 이를 클래스 맴버 W에 저장합니다. 이를 통해 객체(분류기)는 맴버 X, Y, W를 가집니다.2. 시그모이드 함수 ( Sigmoid function )를 정의합니다.numpy 라이브러리의 exp 함수를 사용하여 수식을 작성합니다.3. 손.......

벡터공간과 부분공간 그리고 생성(span) [내부링크]

이번 포스팅에서는 벡터공간과 부분공간 그리고 생성(span)에 대해서 알아보겠습니다.1. 벡터공간체 F와 집합 V에 대하여 다음이 성립할 때, V를 체 F 위에서 정의된 벡터공간(vector space)이라고 합니다.체(Field) : 체의 원소는 덧셈과 곱셈 각각에 대하여 교환법칙, 결합법칙이 성립하고, 항등원과 역원이 존재합니다. (곱셈의 역원의 경우 0을 제외합니다.)①V의 원소 u,v,w에 대하여② V의 원소 u,v와 임의의 스칼라 k,l에 대하여즉, 벡터공간이기 위해서는 사칙연산에 대하여 닫혀있고, 항등원과 역원이 존재해야 합니다.2. 부분공간벡터공간 V의 부분집합 W에 대하여 W가 벡터공간의 조건을 충족시킬 때 W를 V의 부분공간(subspace.......

확률과 확률분포 [내부링크]

시작하기에 앞서 이 게시물은 히라오카 카즈유키의 프로그래머를 위한 확률과 통계라는 책을 참고하여 작성한 것을 밝힙니다. 우리는 일상생활에서 가능성에 대한 표현으로 확률이라는 단어를 사용하곤 합니다. 이를테면 주사위에서 1이 나올 확률, 내일 눈이 올 확률과 같은 것들이 있죠. 그런데 확률이란 무슨 의미일까요? 확률이란 어떤 사건이 일어날 가능성의 정도를 표현한 것으로 우리의 추론이 얼마나 믿을 만한 것인지 뒷받침 해주는 정량적인 근거라고 할 수 있습니다. 확률을 공부하다 보면 익숙하지 않은 개념들을 접하게 됩니다. 실험, 표본공간, 근원사상, 사상과 같은 것들 말이죠. 그냥 지나치기 쉽지만, 명확하게 이해하게 되.......

OS 모듈을 통한 파일과 디렉토리 접근 [내부링크]

영상을 처리하고 이미지들을 편집하다 보니 파일과 디렉토리를 다룰 일이 많아졌습니다.파이썬에서 기본적으로 제공하는 os 모듈을 통해서 운영체제의 여러 기능들을 수행할 수 있습니다.

Anaconda 가상환경과 Jupyter notebook kernel [내부링크]

Github에서 저장소를 복제(clone)하여 사용할 때 가장 먼저 해야 하는 것이 바로 환경을 설정하는 것입니다. 적절한 환경을 만들기 위해서는 저장소의 소스가 필요로 하는 패키지들을 설치해주어야 합니다. 이 과정에서 현재 소스가 요구하는 패키지들과 이미 저장된 다른 패키지들의 버전 충돌이 발생할 수 있습니다. 각 프로젝트마다 요구하는 패키지의 버전이 다르기 때문에 이것들을 독립적으로 관리해준다면, 아주 편리할 것입니다.그러한 방법 중 하나로 Anaconda를 이용한 가상 환경을 들 수 있습니다. 이번 포스팅에서는 Anaconda에서 가상환경을 생성하고,이를 jupyter notebook과 연동하는 과정을 살펴보겠습니다.이와 같은 방법으로.......

Deep Residual Learning for Image Recognition [내부링크]

Deep Residual Learning for Image Recognition깊은 neural network일수록 train하기 쉽지 않습니다. 본 논문에서는 deep nueral network를 효과적으로 훈련할 수 있는 방법으로 resudual learning framework를 제시합니다. 또한 residual network가 기존의 네트워크보다 더욱 쉽게 최적화 되며, 더 깊은 네트워크에서도 정확도를 얻을 수 있는 증거들을 제시합니다. ( Image Net dataset을 사용하여 VGG Net보다 8배 깊지만 복잡도는 더 낮은 네트워크 152-layer residual net을 평가합니다.)여러 visual recognition 분야에서 중요하게 다루어지는 네트워크의 깊이는 image classification의 돌파구 중 하나로 여겨졌습니다. 이러한 Deep n.......

벡터 미분과 행렬 미분 [내부링크]

Identity Mappings in Deep Residual Networks 논문을 공부하며, 편미분에 대해서 다시 한번 공부하게 되었습니다. 그래서 이에 관련된 내용을 정리해고자 합니다. 이 포스팅은 유튜브 게시물을 통해 작성되었음을 밝힙니다.1. Scalar를 Vector로 미분먼저 x1, x2에 의해서 정의된 스칼라 값을 가지는 미분 가능한 함수 f가 아래와 같다고 가정해보겠습니다. 그렇다면 스칼라 값을 가지는 함수 f에 대한 미분의 정의는 아래와 같을 것입니다.df는 미분의 정의에 의해서 아래와 같이 정리됩니다.이렇게 미분의 정의를 이용하면, 스칼라를 벡터로 미분한 텀을 보다 쉽게 얻을 수 있습니다. 함수를 x1, x2에 대해서 정리하지 않고도 말이죠. 덧붙.......

Backpropagation Algorithm [내부링크]

이번 포스팅에서는 Backpropagation algorithm에 대해서 살펴보도록 하겠습니다. Backpropagtion(역전파)은 deep neural network를 학습시키기 위한 알고리즘입니다. 간단히 이야기 하자면 backprop이란 cost function을 통해서 계산된 error를 편미분 하여 앞으로 전파해나가며 각 노드의 weight와 bias의 값들을 갱신해나가는 알고리즘입니다. backprop은 다변수함수의 미분에 사용되는 chain rule을 통해서 진행되기 때문에 벡터 미분과 행렬 미분 포스팅을 참고하시면 좋을것 같습니다.1. Forward Propagation각 노드의 weight와 bias의 값을 갱신해나가기 위해서는 그것들이 초기화 되어 있어야 하며, 계산된 error가 필요합니다. forward.......

전사선형변환(Surjective linear transform), 단사선형변환(Injective linear transform) [내부링크]

이번 포스팅에서는 전사선형변환(Surjective linear transform)과 단사선형변환(Injective linear transform)에 대해서 공부해보겠습니다. 그 전에 먼저 전사함수와 단사함수를 살펴보겠습니다. ① 전사 함수(Surjective function)는 공역과 치역이 같은 함수를 의미합니다. 말 그대로 원상에 대한 상이 공역 전체와 같습니다.② 단사 함수(Injective function)는 일대일 함수(one-to-one function)로도 불립니다. 이는 정의역의 서로 다른 원소를 공역의 서로 다른 원소로 대응시키는 함수입니다. 공역의 원소는 정의역의 원소 하나의 상으로 나타납니다.1. 전사선형변환벡터공간 V로부터 W로의 선형변환 T에 대하여dim(V) = dim(W)이.......

로지스틱 회귀 (Logistic regression) [내부링크]

선형회귀에서는 종속변수와 독립변수의 선형 관계를 가정하고, 둘의 연관성을 잘 나타낼 수 있는 계수를 찾아는 방식으로 모델의 학습을 진행했습니다. 이는 종속변수와 독립변수의 선형 관계가 적합할 때, 효과적인 결과를 이끌어 냅니다. 즉, 종속변수가 연속형 변수일 경우에 적합하다는 뜻입니다. 만약 아래와 같은 경우에 선형회귀를 통해 모델링 하는 것이 적합할까요?위 그래프는 학생들의 공부시간에 따른 시험 합격 여부를 나타냅니다. S자 커브 대신에 직선으로 이를 추정한다고 가정해봅시다. 그것은 직관적으로 보기에도 합리적으로 보이지 않습니다. 이러한 문제는 종속변수의 속성 때문에 발생합니다. 왜냐하면 위 그래프의 종속.......

연관규칙탐사(Association rule mining) [내부링크]

연관규칙탐사(Association rule mining)는 데이터마이닝(Data mining)에서 널리 쓰이는 알고리즘입니다. 이는 소비자들이 구매하는 상품들의 연관성을 찾는 Market Basket Analysis에서 처음 쓰이기 시작했다고 합니다. 즉, 이 알고리즘의 목적은 데이터에서 변수들간의 유의미한 규칙을 발견하는데 있습니다. 여기서 규칙이란 이를테면 "라면을 구매하는 고객이 달걀을 함께 구매할 가능성이 높다"와 같은 것을 말합니다. Data mining is a process of discovering patterns in large data sets involving methods at the intersection of machine learning, statistics, and database systems.여기서 알 수 있듯이 이 알고리즘은 모.......

정규방정식(Normal equation) [내부링크]

저번 포스팅에서 손실 함수를 최소화하는 계수를 찾는 두 가지 방법 정규방정식(Normal euqation)과 경사하강법(Gradient descent)을 언급했습니다. 이번 포스팅에서는 정규방정식을 살펴보겠습니다. 쉽게 이야기하자면 정규방정식은 다항 방정식을 행렬로 나타내고, 역행렬을 통해 최적의 값을 찾는 방법이라고 할 수 있습니다.우리는 어떤 식의 최솟값을 찾으려고 할 때 미분을 이용하곤 합니다. 여기서도 동일하게 a, b에 대한 최솟값을 찾기 위해 각 변수에 대해 편미분을 취해줍니다. 편미분에 관한 정보는 이곳과 이곳을 참고하면 좋습니다.우리의 목적은 최적의 계수 a, b를 구하는 것입니다. 역행렬 이용하여 값을 찾기 위해서 식을 풀어.......

경사하강법(Gradient descent) [내부링크]

정규방정식에서는 손실함수를 계수에 대하여 편미분한 연립방정식의 양변에 (XTX)-1을 곱하는 방식으로 선형방정식의 계수를 찾았습니다. 하지만 경사하강번에서는 반복적인 작업을 수행하여 계수를 구합니다. 임의의 지점에서 시작하여 기울기를 계산하고, 이를 반영해 점차적으로 계수를 조정해나가는 방법이 경사하강법에 해당합니다.Cost(w)를 wj에 대하여 편미분하면 다음과 같습니다.위 식의 값이 0에 수렴하게 될 때 손실함수는 최솟값을 갖습니다. 우리는 이 기울기에 따라서 선형회귀 계수를 조정할 수 있습니다. 예컨데 위 기울기(Gradient)의 값이 양수라면, 해당 지점이 최적해로부터 양의 방향에 위치한다는 것을 알 수 있습니.......

차원정리(rank-nullity theorem), 행공간(row space), 영공간(null space) [내부링크]

저번 포스팅에서는 열공간에 대해서 공부해보았습니다. 이번 포스팅에서는 차원정리(rank-nullity theorem), 행공간(row space), 영공간(null space)에 대해서 알아보겠습니다. 먼저 차원정리를 이야기 하기 전에 먼저 행공간, 영공간 그리고 각각의 차원을 살펴보겠습니다.1. 행공간과 영공간m x n 행렬 A에 대하여 행렬 A의 행벡터가 생성하는 Rn의 부분공간을 A의 행공간(row space)이라 합니다. 그리고 행렬 A의 행공간의 차원(=열공간의 차원)을 rank(A)라고 표시합니다. AX=0의 해공간을 A의 영공간(null space)이라 하고 ker(A)라 표시합니다. 영공간의 차원을 nullity(A)라고 표시합니다.이해을 돕기 위해 차원(dimension).......

선형변환(linear transformation), 표준행렬(standard Matrix) [내부링크]

1. 선형변환, 표준행렬벡터공간 V로부터 W로의 사상을 T라 할 때 T가 V의 원소 X,Y와 스칼라 k에 대하여 다음 두 조건을 만족할 때 T를 선형변환(linear transformation)이라고 합니다.① T(X+Y) = T(X)+T(Y)② T(kX) = kT(X)선형변환은 벡터공간에서 벡터공간으로의 함수입니다. V에서 W로의 선형변환들의 집합을 L(V,W)로 표현합니다. 선형변환은 선형사상(linaer map) 또는 일차변환(first order transform)이라고도 불립니다.T가 Rm → Rn 으로의 선형변환일 때 T는 대응되는 행렬로 표현될 수 있습니다. 이 행렬을 선형변환 T를 나타내는 표준행렬(standard matrix) 또는 대응행렬이라고 부릅니다. Rm의 표준기저를 통해 선.......

Epoch, Batch, Iteration [내부링크]

우리는 과거의 데이터에 머신러닝 알고리즘을 적용해 학습하여 모델을 만들고, 새로운 데이터를 입력하여 결과를 예측합니다. 알고리즘과 모델의 의미는 아래와 같습니다. - Algorithm : Methods or procedures to solve a problem 문제를 해결하는 방법 또는 과정에 해당한다.- Model : Well-defined computations formed as a result of an algorithm 알고리즘을 통한 결과의 포맷이다.그렇다면 머신러닝에서 데이터를 어떠한 방식으로 활용하는지 알아보도록 하겠습니다. 전체 전체 데이터는 3개의 데이터 셋으로 나눌 수 있습니다.- 훈련 데이터(Training set) : 모델의 학습을 위해 사용됩니다.- 평가 데이터(Test set) : 학습된 모델의.......

상공간(ImT), 차원정리 (rank-nullity theorem) [내부링크]

이번 포스팅에서는 상공간(ImT)과 영공간을 설명하고, 차원정리(rank-nullity theorem)를 다시 살펴보도록 하겠습니다.1. 상공간, 핵(=영공간, 퇴화공간, null space)선형변환 T : V → W에 의한 V의 벡터의 상이 되는 모든 W의 벡터의 집합을 T의 상(=치역)이라고 하고 ImT라고 표현합니다. 이때 ImT를 상공간이라고 하고, ImT는 W의 부분공간에 해당합니다.선형변환 T: V → W 에 대응하는 표현행렬 M에 대하여 T(V) = 0을 만족하는 벡터 V로 이루어진 집합을 T의 핵이라고 하고 ker(T)라고 표현합니다.2. 차원정리열공간의 차원을 살펴보며 차원정리를 설명한 바 있습니다."m x n 행렬 A에 대하여 rank(A) + null.......

선형독립(linearly independent) [내부링크]

선형독립(linearly independent)과 선형종속(linearly dependent)은 선형대수학에서 가장 기본이 되는 개념이라고 할 수 있다. 일차독립, 일차종속이라고도 부른다. 차원(dimension)과 기저(basis)를 포함한 이론의 기본이 된다.1. 선형독립과 선형종속의 정의간단하게 의미를 살펴보자면, 선형독립의 의미는 다음과 같습니다.① 벡터집합 S의 어떠한 원소도 나머지 원소들의 선형결합으로 나타낼 수 없습니다. 즉, 각각의 벡터는 서로 독립적으로 존재한다고 할 수 있습니다.선형종속의 의미는 다음과 같습니다.② 벡터집합 S의 원소 중 적어도 하나는 나머지 원소들의 선형결합으로 나타낼 수 있습니다. 즉, 어떠한 특정 벡터가 나머지 벡.......

기저 (basis) [내부링크]

기저는 선형독립과 아주 밀접한 연관성을 가집니다. 먼저 기저(basis)는 벡터공간 V에 대하여 V의 모든 원소를 선형결합으로 유일하게 표현하는 선형독립인 벡터를 의미합니다. 기저의 조건은 다음과 같습니다.즉, 벡터공간 전체를 생성하는 선형독립인 벡터들을 바로 기저라고 말합니다.이를 통해 우리는 기저가 벡터공간을 생성하는 최소한의 벡터라는 것을 알 수 있습니다.2. 기저의 특징다시 이야기 하자면, 기저(basis)는 벡터공간 V에 대하여 V의 모든 원소를 선형결합으로 유일하게 표현하는 선형독립인 벡터를 의미합니다. 이에 따라 주목할만한 특징을 가집니다.① 기저 표현의 유일성풀어서 이야기 하자면 기저는 벡터공간의 모든 원.......

열공간(column space) [내부링크]

이번 포스팅에서는 행공간과 열공간 그리고 열공간의 기저를 간단히 살펴보겠습니다.1. 열공간m x n 행렬 A에 대하여 행렬 A의 열벡터가 생성하는 Rm의 부분공간을 A의 열공간(column space)이라고 합니다. 즉, 행렬 A의 열벡터가 선형결합을 통해 생성하는 모든 벡터집합은 열공간이라고 할 수 있습니다.AX=B 형태의 행렬 방정식에서 해에 따라 벡터 B가 A로부터 생성되는가를 판단할 수 있습니다. 이 과정에서 해의 유무를 판단하기 위하여 가우스 소거법을 사용합니다.(rank(A)와 rank(A|B)를 비교)여기에 열공간의 개념을 덧붙여 보겠습니다.'AX=B가 해를 갖는다'는 아래의 명제들과 동치입니다.⇔ B가 A의 선형결합.......

선형회귀(Linear regression) [내부링크]

선형회귀(Multiple linear regresion)란 독립변수를 통해 종속변수의 결과를 예측하는 통계적 방법을 가리킵니다. 선형회귀의 목적은 변수간의 연관성을 잘 나타낼 수 있는 직선을 찾는 것입니다. 선형회귀를 통해 우리는 아래와 같은 효과를 얻을 수 있습니다.① 독립변수와 종속변수의 인과관계를 파악할 수 있습니다.② 일차 선형 방정식을 통하여 종속변수를 예측할 수 있습니다.위 그래프의 x축을 집의 면적, y축을 집의 가격이라고 가정해보겠습니다. 그렇다면 위 직선을 통해 집의 면적와 가격의 인과관계를 파악할 수 있으며. 집의 면적으로 대략적인 가격을 예측할 수 있게 됩니다.우리는 변수간의 관계를 잘 나타낼 수 있는 직선.......