728x90

bskyvision.com 796

서포트 벡터 머신(SVM)의 사용자로서 꼭 알아야할 것들 - 매개변수 C와 gamma

서포트 벡터 머신(SVM)은 딥 러닝이 나온 이후에도 여전히 환영받고 있는 머신러닝(기계학습) 알고리즘이다. 웬만한 상황에서 딥 러닝 못지 않은 성능을 내고, 무엇보다도 가볍기 때문이다. 나도 분류(classification)나 회귀(regression)의 목적으로 SVM을 자주 활용하고 있다. 이 글은 나와 같은 SVM 사용자를 위한 글이다. 사용자의 입장에서 SVM에 대해서 알아야할 것들을 정리해보려고 한다. 이미 온라인 상에 SVM에 대한 많은 글들이 있지만, 대부분 복잡한 수식적인 것에 치우쳐서 너무 어렵거나 아니면 너무 수박 겉핡기인 글들이 많다. 알고리즘의 개발자가 아닌 사용자라면 어떻게해야 SVM을 좀 더 잘 사용할 수 있을지를 아는 것이 중요하다. 여기에 초점을 맞춰 필요한 이론을 설명하겠..

대비감도함수(contrast sensitivity function)의 이해 + 공간주파수, 대비

대비감도함수(CSF: contrast sensitivity function)란 특정한 공간 주파수를 지니고 있는 시각적 자극이 주어졌을 때, 그러한 자극이 어느 정도의 대비를 갖고 있을 때 사람의 눈에 인식될 수 있는지를 기술하는 함수이다. 간단히 말해서 어떤 공간 주파수에서 어느 정도의 대비를 갖고 있는 신호에 우리의 눈이 민감한지를 나타내는 함수이다. 지금은 이것이 무슨 뜻인지 몰라도 좋다. 글을 끝까지 읽다보면 자연스레 이해하게 될 것이다. 대비감도함수를 이해하려면 우선 공간 주파수(spatial frequency)와 대비(contrast)에 대해 알아야 한다. ▶ 공간주파수와 대비 공간 주파수(spatial frequency)는 공간적으로 얼마나 자주 밝기 또는 색상이 변하는가와 관련이 있다. 공..

[선형대수학] 마코프 행렬(Markov matrix)의 특징

딥러닝에 대한 논문이나 자료를 찾다보면 Markov chain (MC), Markov decision process (MLP) 등의 용어들을 종종 만나게 된다. 뭔가 이름이 어려워보여 그 부분부터 막히곤 했다. 그것들의 기초가 되는 것이 Markov matrix다. ▶ Markov matrix의 특성 Markov matrix는 모든 요소가 0보다 크거나 같고, 각 열 벡터들의 요소들을 더하면 1이 되는 행렬이다. Markov matrix인 A의 특성을 아래에 나열해봤다. (1) 첫번째 고유값은 항상 1이다.(2) 첫번째 고유벡터는 음이 아니고,이므로 steady state이다.(3) 다른 고유값들의 절대값은 1보다 작거나 같다. (4) 의 해는 의 배수에 근사한다. 하나의 예를 통해 이 특성들을 확인해보..

C언어의 메모리 구조: 데이터(Data), 스택(Stack) 그리고 힙(Heap) 영역

우리가 프로그래밍 언어로 작성한 프로그램을 실행시키기 위해서는 메모리 공간이 필요하다. 효율적으로 메모리를 관리하고 활용하는 사람이 좋은 프로그래머라고 볼 수 있다. 똑같은 기능을 구현하는데 A라는 프로그래머는 1기가바이트를 사용했고, B라는 프로그래머는 10기가바이트를 사용했다면 당연히 A 프로그래머가 만든 프로그램을 사용하지 않겠는가? 실행중인 프로그램은 운영체제로부터 메모리 공간을 할당 받는데, 할당되는 메모리 공간은 크게 데이터, 스택, 힙 영역으로 나눠진다. ▶ 데이터, 스택, 힙 영역이란? 데이터 영역에는 전역 변수와 static 변수가 할당된다. 전역 변수는 메인 함수의 밖에 선언되는 변수로 프로그램 어디에서나 접근이 가능하며 한번 초기화하면 두 번 다시 초기화 할 수 없다는 특징이 있다. ..

코딩/C, C++ 2017.10.16 (2)

[교훈희의 신혼여행기, 3부] 눈물의 카페라떼 - 크로아티아 자그레브

가든 호텔의 조식은 상당히 훌륭했다. 다양한 빵들과 햄, 소세지, 치즈, 잼, 오믈렛, 싱싱한 과일과 달콤한 디저트까지. 아직 유럽여행 초반이라 그런지 우리의 입과 위는 두손들고 느끼한 음식들을 환영했다. 식당은 온실정원 같은 따뜻함과 산뜻함이 느껴져서 아직 냉전상태인 것도 잠시 잊을 정도였다. 양껏 먹은 후 우리는 자그레브의 시내로 향했다. 자그레브 관광의 중심지로 불리는 반 옐라치치 광장으로 걸어가는 동안 따스한 햇살을 맞으며 자그레브의 향기를 느꼈다. 가지고 온 유로를 크로아티아 화폐인 쿠나로 환전한 후 큐티를 하기 위해 카페를 찾아헤맸다. (참고로 1쿠나는 대략 한화로 200원정도한다. 50쿠나면 만원정도하는 것이다.) 자그레브 대성당이 눈 앞에 아름답게 보이는 노천 카페에 자리를 잡았다. 카페라..

[교훈희의 신혼여행기, 2부] 신혼여행의 위기 - 크로아티아 자그레브

자그레브 공항에 도착하니 저녁 8시 반이었다. 렌트를 해서 다니는 것이 우리의 목표였기에 공항에 있는 렌트카 회사를 찾아갔다. 라스트미닛이라는 곳에서 했는데, 사전에 예약을 하지 않아 생각보다 가격이 쎘다. (꼭 미리 예약을 하시길..ㅜ) 6박 7일간 렌트했는데 보험비까지 포함해서 약 76만원 정도 지불했다. 우리가 렌트한 차는 독일의 아스트라였다. 수동기어와 오토기어가 있었는데 군대 다녀온 후 면허를 딴후 일년에 가뭄에 콩나듯 운전을 했었기에 오토기어를 선택할 수 밖에 없었다. 참고로 수동기어로 하면 훨씬 가격이 저렴해진다. 렌트를 완료하고 공항을 빠져나가려고 하는데 난관에 봉착했다. 주차 정산기가 우리가 공항을 빠져나가는 것을 막았다. 무슨 일인가 싶었는데 알고보니 렌트카 직원이 준 주차권은 이미 시..

일상/여행 후기 2017.10.14 (4)

[선형대수학] 행렬의 대각화 이용해서 차분방정식(difference equation) 풀기

▶ 차분방정식이란? 행렬의 대각화를 이용하면 차분방정식의 해를 비교적 간단하게 구할 수 있다. 계차방정식이라고도 불리는 차분방정식은 시간이 지남에 따라 상태가 변하는 문제를 방정식으로 만들어 놓은 것이다[1]: ...(공식1: 차분방정식) 공식1은 였던 상태가 시간 단위 1이 지나면 행렬 A를 곱하는 것과 같이 변한다는 것을 나타낸다. k가 0일때부터 순서대로 생각해보면 아래와 같이 상태가 변함을 알 수가 있다. ...(공식2: 차분방정식의 해) 즉, 시간 k에서의 상태는 행렬 A의 거듭제곱을 초기상태에 곱한 결과가 된다. 간단한 예를 들어보자. 우리가 1000,000원을 매년 6%의 이자를 주는 은행에 저축한다고 생각해보자. 그러면 k년 후에 원금 백만원은 얼마가 되어있을까? 공식화하면, (k년 후의 ..

[교훈희의 신혼여행기, 1부] 벨기에 와플은 두 개는 먹어봐야지 - 벨기에 브뤼셀

2018년 7월 22일 나와 희는 평생 서로를 사랑하고 어떤 모습도 용납하기로 우리를 사랑해주시고 아껴주시는 많은 이들 앞에서 결단했다. 그리고 며칠간 한국에서 시간을 보낸 후 신혼여행을 떠났다. 우리는 목적지인 크로아티아를 가기 위해 먼저 벨기에 브뤼셀을 경유해야했다. 브뤼셀은 벨기에의 수도이다. (참고로 우리는 중국 베이징 수도 공항에서 출발했다.) 오전 6시 반쯤 도착했는데 크로아티아 자그레브로 가는 비행기가 오후 6시 반이라서 12시간 정도 남은 상황이었다. 공항에서 죽 치고 기다리긴 너무 긴 시간이라 우리는 브뤼셀 시내에 나가보기로 했다. 그런데 입국 심사를 잘못해서 입국장이 아닌 경유하는 곳으로 바로 가게 되었다. 어떻게 하면 공항 밖으로 나갈 수 있는지 몰라서, 한 직원에게 물어봤는데 유로비..

포인터의 이해

C/C++에서 포인터를 이해하는 것은 상당히 중요한 부분을 차지한다. 사실 어렵다는 인식이 강해서 그렇지 사실 그렇게 어렵지 않은 문법이다. 가장 큰 적은 우리 안에 있는 두려움! 표현이 살짝 오글거리지만, 아무튼 용기 있게 포인터 공부를 시작해보자. ▶ 포인터에 대한 직관적 이해 포인터를 이해하기 위해 간단한 비유를 만들어보았다. 행복초등학교에 다니고 있는 철수, 영희, 바둑이는 모두 다 사랑아파트 3동에 거주하고 있다. 철수는 504호, 영희는 402호, 바둑이는 201호에 각각 살고 있다. 어느날 이들과 같은 반 친구인 영수가 놀러왔다. 영수는 친구들을 집 밖으로 불러내기 위해 두 가지 방법을 사용할 수 있다. 아파트 앞에서 "철수야 나와!"라고 할 수도 있고, 약간 장난스럽게 주소를 이용해서 "5..

코딩/C, C++ 2017.10.09 (6)

32비트, 64비트 운영체제의 차이

우리가 사용하는 컴퓨터는 크게 32비트 운영체제와 64비트 운영체제로 나눌 수 있다. 불과 10년 전만해도 모든 컴퓨터는 32비트 운영체제였는데, 슬슬 64비트 운영체제가 나오기 시작하더니 이제 출시되는 컴퓨터는 거의 64비트 운영체제로 바뀌었다. 그렇다면 이것들은 무엇이고, 이 둘은 어떤 차이가 있을까? 일단 자신이 사용하고 있는 노트북이 32비트 운영체제인지, 64비트 운영체제인지 확인해보자. 내 컴퓨터를 우클릭한 후 속성을 클릭하면 다음 그림과 같은 것이 보인다. 시스템 종류를 보면 64비트 운영 체제, x64 기반 프로세서라고 되어 있다. 이전에 사용하던 노트북은 32비트 운영 체제였다. 두 운영체제의 차이를 살펴보자. ▶ 32비트와 64비트 운영체제의 차이 [2]에 의하면, 32비트와 64비트의..

PC/컴퓨터, 인터넷 2017.10.09 (8)