평균과 기댓값은 같은 것일까? 종종 혼용되기 때문에 헷갈릴 수 있다. 하지만 완전히 같은 것이라고 볼 수는 없다. 


쉽게 말하면, 평균은 단순히 모든 샘플값을 더한 것을 샘플의 갯수로 나눈 것이다. 


...(공식1: 평균)


반면, 기댓값은 확률적 사건에 대한 평균값으로 각 사건의 결과값과 그 사건이 발생할 확률을 곱한 것을 모두 합한 것이다. 시행하지 않은 사건에 대해 예측하는 평균값이라고 볼 수 있다. 기댓값은 평균과 달리 확률이 포함된다.


...(공식2: 기댓값)


평균은 과거, 기대값은 미래의 개념이 있다고 볼 수 있다. 




<참고자료>

[1] http://m.blog.daum.net/rhaoslikesan/293?categoryId=33

확률질량함수(probability mass function, PMF): 이산확률변수에서 특정 값에 대한 확률을 나타내는 함수이다. 즉, 확률변수가 취할 수 있는 값이 유한개이거나 자연수와 같이 셀 수 있는 이산확률변수일 때, 그 불연속한 값에 대한 확률을 나타내는 함수가 바로 확률질량함수이다.


확률밀도함수(probability density function, PDF): 연속확률변수에서 특정 값에 대한 확률을 나타내는 함수이다. 즉, 확률변수가 어떤 범위에 속하는 모든 실수 값을 취하는 연속확률변수일 때, 그 연속된 값에 대한 확률을 나타내는 함수가 바로 확률밀도함수이다. 


따라서, 양자의 차이는 이산확률변수에 관한 것이냐 연속확률변수에 관한 것인가이다.



<참고자료>

[1] 개념원리 확률과 통계, 이홍섭

[2] https://ko.wikipedia.org/wiki/%ED%99%95%EB%A5%A0_%EC%A7%88%EB%9F%89_%ED%95%A8%EC%88%98, 위키백과 확률질량함수

동역자들과 하루 말씀 5장 읽기 프로젝트를 진행중입니다. 신약을 하루에 5장씩 읽으면 52일이면 다 읽을 수 있습니다. 


1-20일차의 내용=> https://bskyvision.com/346

21-40일차의 내용=> https://bskyvision.com/374 



▶ 41일차, 20181221, 디도서 1장-히브리서 1장


1) 교훈

깨끗한 자들에게는 모든 것이 깨끗하나 더럽고 믿지 아니하는 자들에게는 아무 것도 깨끗한 것이 없고 오직 그들의 마음과 양심이 더러운지라 (딛1:15)

------
모든 것이 더러워보인다면 내가 더러운 것이다.


2) 승준

“그가 우리를 대신하여 자신을 주심은 모든 불법에서 우리를 구속하시고 우리를 깨끗하게 하사 선한 일에 열심하는 친 백성이 되게 하려 하심이니라 너는 이것을 말하고 권면하며 모든 권위로 책망하여 누구에게든지 업신여김을 받지 말라”

‭‭디도서‬ ‭2:14-15‬     


3) 한나

주여, 태초에 주께서 땅의 기초를 놓으셨고 하늘도 주의 손으로 만드셨습니다. 하늘과 땅은 없어질 것이나 주는 영원히 살아 계실 것이며 그것들은 옷처럼 낡아질 것입니다.”

‭‭히브리서‬ ‭1:10-11‬ ‭
저도 언젠가는 이 몸이 낡고 쓰러질 때가 있을 것입니다. 제가 낡게 되었을 때 더러워져서 다시 쓸 수 없는 천이 아닌, 다른데 덧붙여서 써질 수 있는 귀한 천이 되고 싶습니다. 제 생각과 마음으로 살아서 정욕에 가득찬 사람이 되지 않고, 하나님 원하시는 데로 묻고 따르며 영광 받으실 수 있게 그 분의 도구가 되기를 원합니다. 내 인생 주님께 올려드릴 수 있는 자녀가 되기를 소망합니다 주님.



▶ 42일차, 20181222, 히브리서 2-6


1) 교훈

그들과 같이 우리도 복음 전함을 받은 자이나 들은 바 그 말씀이 그들에게 유익하지 못한 것은 듣는 자가 믿음과 결부시키지 아니함이라 (히4:2)

------
믿지 않으면 하나님의 세계를 볼 수 없다. 먼저 하나님의 세계를 보면 믿겠다는 사람이 많은데 믿음의 눈으로 보지 않으면 결코 볼 수 없다.


2) 승준

“자기가 시험을 받아 고난을 당하셨은즉 시험 받는 자들을 능히 도우시느니라”

‭‭히브리서‬ ‭2:18‬ ‭    


3) 선우

히브리서 4장 [개역개정]

12  하나님의 말씀은 살아 있고 활력이 있어 좌우에 날선 어떤 검보다도 예리하여 혼과 영과 및 관절과 골수를 찔러 쪼개기까지 하며 또 마음의 생각과 뜻을 판단하나니
13  지으신 것이 하나도 그 앞에 나타나지 않음이 없고 우리의 결산을 받으실 이의 눈 앞에 만물이 벌거벗은 것 같이 드러나느니라



▶ 43일차, 20181224, 히브리서 7-11


1) 승준
“그러므로 너희 담대함을 버리지 말라 이것이 큰 상을 얻느니라 너희에게 인내가 필요함은 너희가 하나님의 뜻을 행한 후에 약속을 받기 위함이라”
‭‭히브리서‬ ‭10:35-36‬ ‭KRV‬‬     

2) 교훈
26 우리가 진리를 아는 지식을 받은 후 짐짓 죄를 범한즉 다시 속죄하는 제사가 없고
27 오직 무서운 마음으로 심판을 기다리는 것과 대적하는 자를 태울 맹렬한 불만 있으리라
28 모세의 법을 폐한 자도 두세 증인으로 말미암아 불쌍히 여김을 받지 못하고 죽었거든
29 하물며 하나님의 아들을 짓밟고 자기를 거룩하게 한 언약의 피를 부정한 것으로 여기고 은혜의 성령을 욕되게 하는 자가 당연히 받을 형벌은 얼마나 더 무겁겠느냐 너희는 생각하라
(히10:26-29)
------
더 이상 뒤돌아보지 말자. 하나님의 은혜를 이만큼 많이 받았는데 다시 옛생활로 옛습관으로 돌아갈 수 없다. 돌아가는 자에게 하나님의 엄중한 심판이 기다린다.

3) 선우
히브리서 10장 [개역개정]
28  모세의 법을 폐한 자도 두세 증인으로 말미암아 불쌍히 여김을 받지 못하고 죽었거든
29  하물며 하나님의 아들을 짓밟고 자기를 거룩하게 한 언약의 피를 부정한 것으로 여기고 은혜의 성령을 욕되게 하는 자가 당연히 받을 형벌은 얼마나 더 무겁겠느냐 너희는 생각하라


▶ 44일차, 20181225, 히브리서 12장-야고보서 3장


1) 승준

“예수 그리스도는 어제나 오늘이나 영원토록 동일하시니라”

‭‭히브리서‬ ‭13:8‬ ‭KRV‬‬                       
저희를 구하기 위해 이땅에 내려오시고 영원히 동일하신 예수 그리스도를 항상 기뻐하며 믿을수 있기를 소망합니다


2) 교훈

그러므로 우리는 예수로 말미암아 항상 찬송의 제사를 하나님께 드리자 이는 그 이름을 증언하는 입술의 열매니라 (히13:15)

------
매순간 주님께 찬송의 제사를 드리자.


3) 선우

야고보서 1장 [개역개정]

2  ○내 형제들아 너희가 여러 가지 시험을 당하거든 온전히 기쁘게 여기라
3  이는 너희 믿음의 시련이 인내를 만들어 내는 줄 너희가 앎이라
4  인내를 온전히 이루라 이는 너희로 온전하고 구비하여 조금도 부족함이 없게 하려 함이라



▶ 45일차, 20181226, 야고보서 4장-베드로전서 3장


1) 승준

“주 앞에서 낮추라 그리하면 주께서 너희를 높이시리라”

‭‭야고보서‬ ‭4:10‬ ‭KRV‬‬                        
제 자신을 드러내려는것이 아닌 주님을 드러내는 삶을 살도록 인도하여 주세요


2) 교훈

남편들아 이와 같이 지식을 따라 너희 아내와 동거하고 그를 더 연약한 그릇이요 또 생명의 은혜를 함께 이어받을 자로 알아 귀히 여기라 이는 너희 기도가 막히지 아니하게 하려 함이라 (벧전3:7)

------
아멘. 아내를 깨지기 쉬운 약한 그릇으로 여기고 귀하게 대하자.



▶ 46일차, 20181227, 베드로전서 4장-베드로후서 3장


1) 교훈

주의 약속은 어떤 이들이 더디다고 생각하는 것 같이 더딘 것이 아니라 오직 주께서는 너희를 대하여 오래 참으사 아무도 멸망하지 아니하고 다 회개하기에 이르기를 원하시느니라 (벧후3:9)

------
주님 다시 오실 날이 결코 멀지 않았음을 인지하고 하나님을 경외하며 이웃에게 복음을 전하자.


2) 승준

“모든 은혜의 하나님 곧 그리스도 안에서 너희를 부르사 자기의 영원한 영광에 들어가게 하신 이가 잠깐 고난을 받은 너희를 친히 온전케 하시며 굳게 하시며 강하게 하시며 터를 견고케 하시리라”

‭‭베드로전서‬ ‭5:10‬ ‭KRV                     
온전케하시며 강하게 하시는 주님 주님보다 앞서가지 않고 겸손하게 주님 말씀 기다리겠습니다 사랑으로 인도하여 주실줄 믿습니다 찬양의 가사가 너무 와닿습니다 주님 늘 은혜에 감사합니다 사랑합니다 주님 ㅠㅠ


3) 선우

베드로전서 5장 [개역개정]

5  젊은 자들아 이와 같이 장로들에게 순종하고 다 서로 겸손으로 허리를 동이라 하나님은 교만한 자를 대적하시되 겸손한 자들에게는 은혜를 주시느니라



▶ 47일차, 20181228, 요한일서 1-5장


1) 승준

“이 세상이나 세상에 있는 것들을 사랑치 말라 누구든지 세상을 사랑하면 아버지의 사랑이 그 속에 있지 아니하니”

‭‭요한일서‬ ‭2:15‬ ‭KRV‬‬                        
세상의 것을 쫓지않고 주님말씀을 쫓으면서 발버둥칠수 있도록 도와주세요 주님 세상의 것으로 편한것보다 주님안에 발버둥치면서 살아가는게 주님보시기에 예쁘실줄 믿습니다


2) 교훈

그의 형제를 미워하는 자는 어둠에 있고 또 어둠에 행하며 갈 곳을 알지 못하나니 이는 그 어둠이 그의 눈을 멀게 하였음이라 (요일2:11)

------
나는 빛가운데 있는가? 어둠가운데 있는가? 형제들을 판단하지 말고 용납하고 사랑하자.


3) 선우

요한일서 2장 [개역개정]

15  이 세상이나 세상에 있는 것들을 사랑하지 말라 누구든지 세상을 사랑하면 아버지의 사랑이 그 안에 있지 아니하니
16  이는 세상에 있는 모든 것이 육신의 정욕과 안목의 정욕과 이생의 자랑이니 다 아버지께로부터 온 것이 아니요 세상으로부터 온 것이라
17  이 세상도, 그 정욕도 지나가되 오직 하나님의 뜻을 행하는 자는 영원히 거하느니라



▶ 48일차, 20181229, 요한이서 1장-요한계시록 2장


1) 승준

“곧 우리 구주 홀로 하나이신 하나님께 우리 주 예수 그리스도로 말미암아 영광과 위엄과 권력과 권세가 만고 전부터 이제와 세세에 있을찌어다 아멘”

‭‭유다서‬ ‭1:25‬ ‭KRV‬‬                          
하나님 오늘하루도 주님 말씀으로 시작하게 하심에 감사드립니다 어제 주님께 위로받은 마음과 주님의 손길 기억하며 존귀하신 주님께 영광돌리며 주님의 향기를 나타내는 삶을 살도록 인도하여주세요


2) 교훈

4 그러나 너를 책망할 것이 있나니 너의 처음 사랑을 버렸느니라

5 그러므로 어디서 떨어졌는지를 생각하고 회개하여 처음 행위를 가지라 만일 그리하지 아니하고 회개하지 아니하면 내가 네게 가서 네 촛대를 그 자리에서 옮기리라
(계2:4-5)
------
주님 첫사랑을 회복하게 해주세요. 주님을 뜨겁게 만나는 예배, 삶이 되게 해주세요.


3) 선우

요한계시록 2장 [개역개정]

22  볼지어다 내가 그를 침상에 던질 터이요 또 그와 더불어 간음하는 자들도 만일 그의 행위를 회개하지 아니하면 큰 환난 가운데에 던지고
23  또 내가 사망으로 그의 자녀를 죽이리니 모든 교회가 나는 사람의 뜻과 마음을 살피는 자인 줄 알지라 내가 너희 각 사람의 행위대로 갚아 주리라



▶ 49일차, 20181231, 요한계시록 3-7



▶ 50일차, 20190101, 요한계시록 8-12



▶ 51일차, 20190102, 요한계시록 13-17



▶ 52일차, 20190103, 요한계시록 18-22장





2018년에 저희 가정에 참 많은 일이 있었습니다. 1월에 첫 조카인 가언이가 태어났고, 5월에 로아가 태어났습니다. 7월에 석사학위를 받았고, 9월에 박사과정을 시작했고, 최근에는 또 아내가 둘째를 임신했습니다. 


하지만 쉽지 않은 순간들도 있었습니다. 로아가 예정일보다 늦게 나와서 마음 졸였던 날들도 있었고, 사랑하는 이모와 아내의 외삼촌이 갑작스럽게 돌아가시는 일도 있었습니다. 박사 과정 장학금 합격자 발표가 늦어져서 기다리다 지쳤던 때도 있었습니다. 갑자기 로아에게 폐렴 증세가 있어서 새벽에 응급실에 갔다가 한국에 돌아가서 치료를 받았던 일도 있었습니다. 


즐거운 일만 있으면 좋겠지만, 힘든 일도 있는 것이 우리의 인생입니다. 우리는 이런 저런 일들이 일어나는 이유를 다 알 수 없지만, 확실한 것은 우리 주님이 선하시다는 것입니다. 우리의 인생을 주님께서 선하게 인도하십니다. 올해 주님이 우리를 어떻게 인도해오셨는지 생각해봅시다. 우리가 주님 뜻대로 가지 않으려고 버틸 때도 많았지만, 결국 주님이 우리를 어루만지시고 다독이셔서 주님의 뜻대로 인도하셨습니다. 


모든 감사의 제목들을 우리 주님께 올려드립시다. 



1. 임재


참고 영상:

https://www.youtube.com/watch?v=jLg46jfkq64, 인터콥


A코드


하늘의 문을 여소서

이곳을 주목하소서

주를 향한 노래가 꺼지지 않으니

하늘을 열고 보소서


이곳에 임재하소서

주님을 기다립니다

기도의 향기가 하늘에 닿으니

주여 임재하여 주소서


*이곳에 오셔서 이곳에 앉으소서

이곳에서 드리는 예배를 받으소서

주님의 이름이 주님의 이름만이

오직 주의 이름만 이곳에 있습니다



2. 예수님 목마릅니다


참고 영상:

https://www.youtube.com/watch?v=UL_CovQHZ7Q, 브리지임팩트


E 코드


1.예수님 목마릅니다

오시어 기름 부으소서

주님을 사모합니다

오셔서 채워주소서


*성령의 불로 성령의 불로

임하소서 임하소서

성령의 불로 성령의 불로

기름 부으소서 기름 부으소서


2.불 같은 사랑 드립니다

나의 간구를 들으소서

이 세상 어느 것보다

주님을 의지합니다



3. 주 이름 찬양


참고 영상: 

https://www.youtube.com/watch?v=HE9XPUH_8kY, 디사이플스


B코드


1.주 이름 찬양 풍요의 강물 흐르는

부유한 땅에 살 때에 주님 찬양해

주 이름 찬양 거치른 광야와 같은 

인생길 걸어 갈 때도 주님 찬양해


*모든 축복 주신 주님 찬양하리

어둔 날이 다가와도 난 외치리


**주의 이름을 찬양해 주의 이름을

주의 이름을 찬양해 

영화로운 주 이름 찬양


2. 주 이름 찬양 햇살이 나를 비추고

만물이 새롭게 될 때 주님 찬양해

주 이름 찬양 가는 길 험할 지라도

고통이 따를 지라도 주님 찬양해


***주님은 주시며 주님은 찾으시네

내 맘에 하는 말 주 찬양합니다



4. 지금까지 지내온 것


참고 영상:

https://www.youtube.com/watch?v=D-Dd6YGR42Y, 김윤진 간사 


D코드


1.지금까지 지내온 것 주의 크신 은혜라

한이 없는 주의 사랑 어찌 이루말하랴

자나깨나 주의 손이 항상 살펴 주시고

모든 일을 주 안에서 형통하게 하시네


2.몸도 맘도 연약하나 새힘 받아 살았네

물 붓듯이 부으시는 주의 은혜 족하다

사랑없는 거리에나 험한 산길 헤맬 때

주의 손을 굳게 잡고 찬송하며 가리라


3.주님 다시 뵈올 날이 날로 날로 다가와

무거운 짐 주께 맡겨 벗을 날도 멀잖네

나를 위해 예비하신 고향집에 돌아가

아버지의 품 안에서 영원토록 살리라

과학은 어떠한 현상을 설명하는 가설을 세우고, 관찰과 실험을 통해 그 가설이 맞는지 틀리는지 검증한다. 가설이 참이라고 검증되면 하나의 이론이 된다. 참고로 가설과 이론의 사전적 의미는 다음과 같다. 


가설: 어떤 사실을 설명하거나 어떤 이론 체계를 연역하기 위하여 설정한 가정. [표준국어대사전]

이론: 사물의 이치나 지식 따위를 해명하기 위하여 논리적으로 정연하게 일반화한 명제의 체계. [표준국어대사전]


가설을 검증하는 단계에서 주로 통계분석방법을 활용한다. 통계분석방법에는 빈도분석, 평균분석, 변량분석, 상관분석, 회귀분석이 있다. 오늘은 이 5가지 분석방법은 각각 무엇이고, 어떤 상황에 어떤 분석방법을 써야하는지에 대해서 정리하려고 한다. 



▶ 통계분석방법


1) 빈도분석 (검증, 카이자승 검증)

측정하여 얻은 데이터가 사람 수, 횟수 등의 빈도인 경우에 사용한다. 이 방법은 집단 간 빈도 차를 비교한다. 


예를 들어, '밤 10시부터 12시 사이에 치킨, 피자, 떡볶이를 시켜먹는 사람 수는 차이가 있을 것이다'라는 가설을 검증하려면 빈도분석을 해야한다. 재미삼아 예를 들었지만, 통계적으로 유의미한 차이가 있을지 궁금하다. 누군가 연구해봐도 좋을 것 같다. 



2) 평균분석(t 검증)

측정하여 얻은 데이터가 점수고 비교해야할 집단이 두 개만 존재할 때, 두 개 집단의 평균 등을 비교하여 가설을 검증한다. 


예를 들어, '수면교육을 받은 그룹과 받지 않은 그룹의 수면의 질(점수로 나타낼 수 있을 때)은 차이가 있을 것이다'라는 가설을 검증하려면 평균분석을 사용해야한다. 



3) 변량분석(F 검증)

측정하여 얻은 데이터가 점수고, 3개 이상 집단을 비교할 때 사용한다. 가장 많이 사용되는 검증 방법으로써, 영어로 ANOVA(analysis of variance)로 표현된다. 


예를 들어, 'A 방식의 수면교육을 받은 그룹과 B 방식의 수면교육을 받은 그룹과 C 방식의 수면교육을 받은 그룹의 수면의 질은 차이가 있을 것이다'라는 가설을 검증하려면 변량분석을 선택해야한다. 집단이 3개 이상이기 때문이다. 



4) 상관분석

두 변수간 관계성이 얼마나 큰가를 분석할 때 사용한다. 상관분석에서는 변수들 간 상관성 유무만 확인하고, 인과관계는 분석하지 않는다. 


상관분석의 핵심은 상관계수(r)를 구하는 것이다. 상관계수는 -1에서 1 사이의 값을 갖게 된다. 상관계수의 절대값이 1에 가까울 수록 두 변수는 큰 관계성을 갖고 있다. 상관계수의 절대값이 0에 가깝다면 관계성이 적다는 것이다. 


널리 사용되는 상관계수에는 Pearson 상관계수, Spearman 상관계수, Kendall 상관계수 등이 있다. Pearson 상관계수는 두 변수의 관계가 얼마나 선형적인지를 반영한다. 한 변수를 x축, 다른 한 변수를 y축에 놓고 그래프를 그렸을 때, 직선에 가까운 분포를 띄면 두 변수는 선형관계를 갖고 있는 것이다. Pearson 상관계수의 절대값이 1에 가까울수록 두 변수는 강한 선형관계이다. Spearman 상관계수와 Kendall 상관계수는 두 변수의 관계가 얼마나 단조로운지를 반영한다. 한 변수가 커질 때 다른 한 변수도 커지고, 한 변수가 작아질 때 다른 한 변수도 작아진다면 단조성이 큰 것이다. Spearman 또는 Kendall 상관계수의 절대값이 1에 가까울수록 두 변수는 강한 단조관계이다.



5) 회귀분석

독립변수가 종속변수에 영향을 미치는지 분석할 때 사용한다. 회귀분석은 인과관계를 분석한다. 관측된 사건들을 정량화해서 여러 독립변수와 종속변수의 관계를 함수식으로 설명한다. 


예를 들어, 단 하나의 세트메뉴만 파는 햄버거 가게가 있다고 가정해보자. 주인은 햄버거의 맛, 감자튀김의 맛, 가격, 종업원 친절도, 가게 분위기라는 5가지 독립변수가 고객 만족도(여기서 종속변수)에 각각 얼마나 영향을 미치는지 알고 싶다. 그렇다면 회귀분석을 시행하면 된다.  


회귀분석의 핵심은 결정계수()를 구하는 것이다. 독립변수와 종속변수로 구한 상관계수에 제곱한 값이다. 결정계수는 독립변수를 가지고 얼마만큼 의미 있게 종속변수를 예측할 수 있는지를 판별할 때 사용한다. 위의 예처럼 독립변수가 5개라면, 총 5개의 결정계수를 계산할 수 있다. 결정계수가 보통 0.65이상()이면 해당 독립변수를 가지고 의미 있게 종속변수를 예측할 수 있다고 판단한다. 



이상의 내용을 표로 정리하면 다음과 같다. 


그림1. 통계분석방법 요점 정리표


 

▶ 글을 마무리하며..


통계분석은 이과생이나 문과생이나 논문을 쓰기 위해서는 꼭 거치게 되는 관문과도 같다. 완벽하게 모든 것을 알지는 못하더라도 본인이 써야하는 방법은 제대로 익혀두자. 



<참고 자료>

[1] 박규상 지음, "처음쓰는 논문 쓰기", 샌들코어(2014)

[2] 김의중 지음, "인공지능, 머신러닝, 딥러닝 입문", 위키북스(2016)

  1. BlogIcon 블로기룸 2018.12.26 16:17 신고

    방대한 양이군요... 지식이 모자라...

유시민의 글쓰기 특강

유시민 지음

생각의 길




▶ 독후감


논문을 쓰는 것이 주된 업무이고 블로그를 즐겨하는 나에게 글쓰기는 떼놓을 수 없는 행위다. 자연스럽게 좋은 글을 쓰고 싶은 욕구가 있다. 어떻게 하면 어려운 전공 내용을 일반인들도 이해할 수 있게 잘 전달할 수 있을까? 자주 자문하게 된다. <유시민의 글쓰기 특강>은 머리 속에 흘러다니던 글쓰기에 대한 철칙과 자세를 잘 정리해주었다. 나는 아래와 같이 요약했다.  


논리 글을 쓰는 이유는 주장하는 바에 대해 논증(옳고 그름을 이유를 들어 밝힘 [표준국어대사전])하기 위함이다. 개인적인 취향은 논증의 대상이 아니지만, 주장은 반드시 논증해야 한다. 


훌륭한 논리 글은 뚜렷한 주제 의식 아래 의미 있는 정보가 논리적으로 연결되어 있고, 적절한 어휘로 문장으로 표현되어 있다. 이러한 글을 쓰려면, 많이 읽고 많이 써보는 것 외엔 왕도가 없다. 많이 읽는 것을 통해 독해력, 요약력, 못난 글을 알아보는 능력을 기를 수 있고, 세상을 이해하는데 필요한 지식을 축적할 수 있다. 또한, 많이 쓰는 것을 통해 글쓰기 근육을 키울 수 있고, 그 근육량에 비례하여 더 좋은 글을 쓰게 된다. 


글은 자신의 삶을 담는다. 삶이 보잘 것 없으면, 글도 보잘 것 없다. 삶이 뒷받침되어야만 좋은 글을 쓸 수 있다. 삶이 뒷받침되어야 그 글에 독자의 마음이 움직인다. 


글의 초반부에 "개인적인 취향에 대해 논증하지 않는다"가 많은 생각을 하게 했다. 누군가 "난 돈까스를 좋아해"라고 말한다면 논증의 대상이 아니라는 것이다. 그러나 "난 돈까스가 세상에서 제일 맛있는 음식이야"라고 주장한다면 논증의 대상이 된다. 왜 세상에서 제일 맛있는 음식인지 근거와 이유를 들어야 한다. 참 많은 경우에 개인 취향에 대해 쓸데없이 논증해왔다는 생각이 들었다. 또한 마땅히 논증해야할 것을 논증하지 않았다는 것도 알게 되었다. 


내가 쓰는 글은 대부분 논리 글인데, 유시민 작가가 말하는 뚜렷한 주제 의식, 의미 있는 정보, 명료한 논리, 적절한 어휘와 문장을 갖추고 있는가 묻게 되었다. 이 네가지 요소를 잘 기억한다면, 더 나은 논문과 블로그 글을 쓸 수 있을 것 같다. 많이 읽고, 많이 써야한다는 것도 전적으로 공감한다. 처음에 쓴 논문의 수준과 최근에 쓴 논문은 큰 차이가 있다. 첫 독후감의 수준과 최근에 쓴 독후감도 크게 다르다. 그동안 읽고 쓴 결과가 묻어난다. 더 열심히 읽고 써야겠다. 


글은 내 삶을 반영한다는 저자의 말이 글쓰기에 대한 어떤 스킬보다도 중요하단 생각이 든다. 시중에 글쓰기에 대한 글이 얼마나 많은가? 그런데 나는 왜 유시민 작가의 글을 읽었을까 생각을 해보면 저자가 유시민이기 때문이다. 하루하루 주어진 내 삶에서 정직하게 최선으로 살아가자. 그러면 내 글은 점점 더 영향력 있는 글이 될 것이다. 


유시민 작가가 글쓰기에 도움이 될 만한 몇 권의 도서를 추천했는데, 약간 납득이 안 되는 것들이 있었다. 우선 라인홀드 니버의 <도덕적 인간과 비도덕적 사회>에 대해 유시민 작가가 요약한 내용이다. 


"모든 집단은 자기중심적이고 이기적인가? 구성원들이 개별적으로는 이타적인데도 집단으로 뭉치면 이기적으로 행동하는 이유는 무엇인가?"


과연 집단에 속하지 않은 개별적인 사람들은 이타적인가? 사람에게 양심이 있어서 이타적으로 살려고 노력하는 점도 있지만, 그보다는 이기적인 면이 훨씬 더 강하다고 생각한다. 나를 생각해도 그렇고, 주변의 사람들을 봐도 그렇다. 사람들이 모인 집단이든 인간 개개인이든 기본적으로 이기적이다. 그렇지 않다면 법이 필요하지 않을 것이다. 나는 이 점에 있어서 동의가 되지 않는다. 또한 막스 베버의 <프로테스탄트 윤리와 자본주의 정신>에 대해서 요약한 것을 보자. 


"직업을 신이 부여한 소명으로, 세속적 성공을 종교적 구원의 증거로 간주한 프로테스탄티즘과 이윤 추구를 동력으로 삼는 자본주의, 둘 사이에는 인과관계가 있는가?"


기독교가 직업을 신이 부여한 소명으로 여기는 것은 어느 정도 맞지만 세속적 성공을 종교적 구원의 증거로 삼는다는 것은 전혀 동의가 되지 않는다. 기독교인들이 믿는 성경이 말하는 것과 전혀 일치하지 않는다. 

"예수께서 이 말을 들으시고 이르시되 네게 아직도 한가지 부족한 것이 있으니 네게 있는 것을 다 팔아 가난한 자들에게 나눠 주라 그리하면 하늘에서 네게 보화가 있으리라 그리고 와서 나를 따르라 하시니 그 사람이 큰 부자이므로 이 말씀을 듣고 심히 근심하더라 예수께서 그를 보시고 이르시되 재물이 있는 자는 하나님의 나라에 들어가기가 얼마나 어려운지 낙타가 바늘귀로 들어가는 것이 부자가 하나님의 나라에 들어가는 것보다 쉬우니라 하시니" (누가복음 18장 22-25절)

"부하려 하는 자들은 시험과 올무와 여러 가지 어리석고 해로운 욕심에 떨어지나니 곧 사람으로 파멸과 멸망에 빠지게 하는 것이라 돈을 사랑함이 일만 악의 뿌리가 되나니 이것을 탐내는 자들은 미혹을 받아 믿음에서 떠나 많은 근심으로써 자기를 찔렀도다" (디모데전서 6장 9-10절)

"돈을 사랑하지 말고 있는 바를 족한 줄로 알라" (히브리서 13장 5절)

이 세 구절을 요약하자면, 돈을 추구하는 것이 많은 악을 불러일으킬 수 있으니 너무 많이 가지려하지 말고 있는 것에 만족하라는 것이다. 이것 말고도 성경에 돈과 관련된 구절들이 많다. 그러나 세속적 성공이 종교적 구원의 증거라는 뉘앙스를 풍기는 부분은 단 한군데도 없다. 단 기독교를 믿지 않는 사람들이 기독교인이 돈을 위해 사는 것 같이 느낀다면, 그 책임은 나와 같은 기독교인들에게 어느 정도 있다고 본다. 성경의 말씀대로 제대로 살지 않아서 오해하게 만든 것이기 때문이다. 

아직 이 책들을 읽어보지 않아서 유시민 작가가 요약을 잘못한 것인지, 그 책의 저자들의 생각이 그런 것인지 알 수 없다. 먼저 두 책을 읽고 누구의 생각인지 판단해야겠다. 그러나 누구의 생각인지를 떠나서 진실에 가까운 내용을 말하고 있는 책들인지는 의문이 든다. 추천도서라면 유시민 작가의 취향 뿐만 아니라 어느 정도 주장도 들어간다고 생각한다. 그래서 살짝 논증해보았다.  

이제 독후감을 마무리하려고 한다. 유시민 작가가 말하는 글쓰기 철칙과 글을 어떤 마음으로 써야 하는가에 대한 조언은 매우 훌륭하다. 하지만, 글쓰기에 도움이 된다고 나열한 도서 목록은 약간 논란의 여지가 있다는 생각이 든다. 


기독교인이라면 누구나 알만한 <마음의 예배>, <주 이름 찬양>, <만 가지 이유>등의 찬양을 작사, 작곡한 사람이 있다. 바로 매트 레드맨이다. 예전에 매트 레드맨이 쓴 <주 이름 찬양>이라는 책을 지인이 선물해줘서 읽은 후로 좋아하게 된 찬양 사역자이다. 


매트 레드먼, 사진출처: https://commons.wikimedia.org/wiki/File:Matt_Redman_at_Dettingen_an_der_Erms_(Germany)_December_2010.jpg


오늘은 어떤 배경에서 찬양 <마음의 예배>가 만들어졌는지를 살펴보려고 한다. 



▶ <마음의 예배>가 작곡된 배경


1990년대 후반에 매트 레드맨이 다니던 고향 교회는 음악적으로 매우 훌륭한 찬양팀이 세워져 있었다. 당시 찬양팀의 음악적 창조성은 굉장히 뛰어나서 지역 교회를 위해 만든 새로운 곡들이 전국적으로, 더 나아가 전세계적으로 영향을 끼치고 있었다. 


그러나 중요한 것을 놓치고 있다는 것을 인지한 그 교회의 목사인 마이크 필라바치(Mike Pilavachi)는 교회의 성도들에게 물었다. 


"예배할 때 하나님께 무엇을 드리고 있습니까? 단순히 좋은 음악을 소비하는 소비자로 이곳에 있진 않습니까?" 


그는 찬양팀과 교회가 예배에 있어서 길을 잃었다는 판단을 했다. 유일한 해결책은 하나님을 예배하는데 있어서 집중을 방해하는 것과 시선을 분산시키는 모든 것을 제거하는 것이었다. 거기에는 전체 사운드 시스템과 찬양팀도 포함되었다. 


필라바치 목사는 중대한 결정을 하게 된다. 찬양팀을 없애는 것이었다. 매트 레드맨을 포함한 많은 이들은 당황스러워했다. 그러나 성도들은 무반주로 찬양을 하면서, 진심어린 기도를 올려드리면서, 하나님과 신선한 방식으로 만나게 되면서, 결국 그들 자신의 목소리를 재발견하게 되었다. 


그제서야 그들은 다시 찬양팀과 사운드 시스템을 재도입할 준비가 되었음을 느끼게 되었다. 그들은 예배에 대한 새로운 관점을 갖게 되었는데, 바로 예배는 온전히 예수님을 위한 것이고, 예배는 마음으로부터 우러나오는 반응을 요구한다는 것이었다. 

이러한 배경 속에서 매트 레드맨은 어느날 그의 침대에서 이 가사를 쓰게 된다. 이 찬양이 훗날 국제적인 찬양이 될 것이라는 어떠한 큰 의도 없이 그저 떠오르는 가사를 재빠르게 적어 내려갔다. 그가 예배에 대해 배우고 있었던 것을 적었을 뿐이었다. 매트 레드맨은 작곡한 후에 필라바치 목사를 찾아가서 가사에 있어서 약간의 교정을 받았다. 이 곡은 매트 레드맨의 1999년 앨범 <Heart of Worship>의 타이틀 곡이 되었다. 




▶ 가사 묵상


그럼 이제 가사를 살펴보자. 아래는 한글로 번역된 가사이다. 



1. 찬양의 열기 모두 끝나면 주 앞에 나와

더욱 진실한 예배드리네 주님을 향한


*노래 이상의 노래 내 맘 깊은 곳에

주께서 원하신 것

화려한 음악보다 뜻없는 열정보다

중심을 원하시죠


**주님께 드릴 맘의 예배

주님을 위한 주님을 향한 노래

중심 잃은 예배 내려놓고

이제 나 돌아와 주님만 예배해요


2. 영원하신 왕 표현치 못할 주님의 존귀

가난할 때도 연약할 때도 주 내 모든 것



영어 가사는 다음과 같다.


1. When the music fades, all is stripped away, and I simply come

longing just to bring something that's of worth that will bless your heart.


*I'll bring you more than a song for a song in itself, 

is not what you have required.

You search much deeper within, through the way things appear.

You're looking into my heart.


**I'm coming back to the heart of worship.

And it's all about you. It's all about you, Jesus.

I'm sorry, Lord for the thing I've made it.

When it's all about you, it's all about you, Jesus.


2. King of endless worth, no one could express, how much you deserve.

Though I'm weak and poor, all I have is yours. 



역시 영어로 작곡된 곡이라 영어로 가사를 묵상해 보니 마음을 더 크게 울린다. 한글로 번역도 잘된 편이긴 하지만, 역시 원어를 따라갈 순 없는 것 같다.  


개인적으로 가장 은혜가 되는 가사는 바로 이 부분이다. 


I'll bring you more than a song for a song in itself, is not what you have required


한글 가사로는 "노래 이상의 노래 내 맘 깊은 곳에 주께서 원하신 것"으로 번역된 부분이다. 원어를 직역하자면, 다음과 같다.


나는 당신께 노래 이상의 것을 드릴거에요. 왜냐하면 노래 자체가 당신이 원하시는 것은 아니기 때문이죠. 



▶ 글을 마무리하며..


찬양 인도를 해온지 약 10년이 지났다. 실력도 부족한데 주님을 향한 마음까지도 부족해서야 되겠냐는 마음으로 해왔던 것 같다. 돌아보면 분명히 속했던 공동체마다 나보다 음악적 역량이 뛰어난 사람이 많았다. 그런 나를 주님께서 세우셨던 것이다. 겸손할 수 밖에 없었다. 


그러나 시간이 흘러가며 처음 마음이 희석되고 교만한 마음이 스물스물 올라왔다. '나 정도 되니까 하나님께서 찬양 인도를 맡기시는 거야.' 미쳤다. 주님을 높여야할 예배가 나를 뽐내는 시간으로 바뀐 것이었다.  


주님, 다시 처음으로 돌아가기 원합니다. 주님, 정말 노래 이상의 것을 드리기 원합니다. 예배할 때마다 그저 노래에 취한 가수가 되지 않게 해주세요. 예배자가 되게 해주세요. 



<참고 자료>

[1] https://www.eden.co.uk/blog/worship/heart-of-worship-the-story-behind-the-song-p11688


중학교 때 each에 대해서 배울 때 '각각의, 개개의'라는 뜻으로 배웠다. 그것이 각인되어서 each는 '각각의, 개개의' 뜻으로만 사용되는 줄 알았다. 그러나 다른 뜻으로 사용되는 경우도 있는데, every와 같이 '모든'의 뜻으로 사용될 때도 있다. 그렇다면 each와 every는 어떻게 구별해서 사용해야 할까? 오늘은 이에 대해 정리해보려고 한다. 



each와 every가 혼용될 수 있는 경우


ex) Each time (또는 every time) I see you, You look different. 내가 너를 볼 때마다 너는 달라 보여. 

ex) There's ceiling fan in each room (또는 every room) of the house. 그 집의 모든 방에는 천장 선풍기가 있다. 


이 두 예문에서는 each나 every 둘 중 어느 것을 사용해도 무방하다. 



each와 every의 차이점


1) each는 사물들을 하나하나 분리해서 생각할 때 사용한다. 반면 every는 사물들을 한 그룹으로 생각할 때 사용한다. all의 의미에 가깝다. 

ex) Study each sentence carefully. 각각의 문장을 꼼꼼히 공부해라. 

ex) Every sentence must have a verb. 모든 문장은 동사를 가져야 한다.


2) each는 작은 수에 좀 더 널리 사용되고, every는 많은 수에 사용된다. 

ex) At the beginning of the game, each player has three cards. 게임의 시작에 모든 플레이어는 세 장의 카드를 받는다. (플레이어가 많지 않으므로 each가 좀 더 적당하다.) 

ex) I would like to visit every country in the world. 나는 세계의 모든 나라를 방문하고 싶다. (세계에는 많은 나라가 있으므로 every가 좀 더 적당하다.)


3) each는 두 가지의 사물을 위해서도 사용될 수 있으나, every는 사용될 수 없다.

ex) In a baseball game, each team has nine players. 야구 경기에서 각 팀은 9명의 선수를 갖는다. 


4) every는 어떤 일이 얼마나 자주 일어나는지에 대해 말하기 위해 사용되지만(http://bskyvision.com/343를 참고하세요), each는 사용될 수 없다. 

ex) 

A: How often do you use your computer? 너는 컴퓨터 얼마나 자주 사용해? 

B: Every day. 매일. 

ex) I get paid every four weeks. 나는 4주마다 봉급을 받는다. 


5) each는 단독으로 사용 가능하지만, every는 그렇지 않다. 

ex) The students were each given a book. 그 학생들은 각각 책 한 권을 받았다. 

ex) There oranges cost 75 cents each. 오렌지는 각각 75 센트이다. 



정리

 

each와 every는 유사한 의미를 지닌다. each는 사물들을 하나하나 분리해서 생각할 때 사용되는 반면, every는 사물들을 하나의 그룹으로 생각할 때 사용된다. each는 적은 수에, every는 많은 수에 좀 더 적당하다. 




하나의 분야를 연구해나가면서 점점 모르는 것을 알아간다는 것은 참 신나는 일이다. 그런데 동시에 내가 모르는 세계가 여전히 참 넓다는 것을 발견해나가는 과정이기도 하다. 3D 비전에 대해 연구하고 관련된 논문도 써왔지만, 여전히 공부해야할 영역이 많다. 내 블로그는 공부했던 내용 중에 누군가에게 도움이 될 만한 내용들을 정리하는 공간이다. 조금이나마 도움이 되길 바라며 오늘도 신나게 키보드를 두드린다.  



▶ 양안 경쟁 현상과 양안 억제 현상


우리는 왜 두 개의 눈을 가지고 있을까? 하나 다쳤을 때를 대비한 것일까? 본다는 것이 인간의 오감 중에서도 가장 중요한 역할을 하기 때문에 이 또한 말이 될 것이다. 하지만 더 중요한 이유가 있다. 우리의 두 눈은 어떤 장면이나 물체를 볼 때 조금 다른 각도로 본다. 왜냐하면 평균적으로 두 눈이 65mm 정도 떨어져 있기 때문이다. (물론 미간이 넓은 사람도 있고 좁은 사람도 있지만.


우리는 살짝 떨어져 있는 두 눈이 있기 때문에 물체를 입체적으로 볼 수 있게 된다. 깊이를 인지할 수 있게 된 것이다. 우리가 깊이를 인지하게 되는 것에는 여러 단안 요인(monocular cue)들도 있지만, 가장 큰 이유는 두 눈으로 봤을 때 약간의 다름 즉, 시차(disparity)가 있기 때문이다. 


보통 우리가 두 눈으로 보는 장면은 상당히 유사하다. 그렇기 때문에 우리의 뇌는 이를 깊이 정보를 가진 하나의 이미지로 융합할 수 있다. 하지만 만약에 두 눈에 서로 다른 장면이 제시된다면 어떤 현상이 일어날까? 일반적으로는 이런 현상이 일어나기 어렵지만, 어떤 장치를 이용해서 일부러 두 눈이 다른 영상을 보게 한다면 가능할 것이다. 이때 바로 양안 경쟁(binocular rivalry) 현상이 일어난다. 왼쪽 눈에 보이는 영상이 인지되었다가, 오른쪽 눈에 보이는 영상이 인지되었다가 또 다시 왼쪽 눈에 보이는 영상이 인지 되는 등 두 눈에 보이는 영상이 서로 경쟁을 일으키는 것이다. 


그림1. 양안 경쟁. 왼쪽, 오른쪽 눈에 제시된 자극이 번갈아가면서 인지된다.



그런데 어떤 경우에는 경쟁에서 완전히 이겨서 아예 한쪽 눈에 제시된 영상이 다른 쪽 눈에 제시된 영상을 억제하기도 한다. 이런 경우를 양안 억제(binocular suppression)라고 한다. 왼쪽 눈에 제시된 영상 또는 오른쪽 눈에 제시된 영상만을 인지한다.  


그림2. 양안 억제. 왼쪽 또는 오른쪽에 제시된 자극이 다른 쪽 눈에 제시된 자극을 항상 이긴다.



이러한 양안 억제 현상을 이용해서 스테레오 이미지와 스테레오 비디오를 다른 정도로 압축하는 방법을 제시하는 논문들도 있다고 한다. 스테레오 이미지는 왼쪽 뷰 이미지와 오른쪽 뷰 이미지 두 장으로 구성되어 있는데, 양안 억제 현상이 일어날 것을 예상해서 한쪽 뷰 이미지를 더 많이 압축시키는 것이다. 품질이 좋은 이미지가 품질이 나쁜 이미지를 억제시킬 것을 기대하는 것이다. 압축을 많이 시킬 수록 더 적은 용량을 갖게 되는 것이니 용량을 줄이는 면에서 합리적이다.  



▶ 양안 억제 현상과 이미지 품질 간의 관계


양안 억제 현상과 이미지 품질의 관계를 연구한 논문들이 있다. 내가 연구하는 분야와 관련이 큰 논문들이라 정리를 해보았다.  


Stelmach과 Tam은 스테레오 이미지가 MPEG-2(blockiness 왜곡을 야기함)로 왜곡되었을 때는 두 단안 이미지의 평균 품질이 양안 품질을 반영하고, low-pass filtering(blur 왜곡을 야기함)로 왜곡되었을 때는 양안 품질이 고품질 단안 이미지에 의해 지배된다고 발표했다[5].  


Stelmach과 Tam의 연구 결과와 동일하게 Meegan 등도 비대칭적으로 MPEG-2에 의해 왜곡된 스테레오 이미지의 양안 품질은 대략 단안 품질의 평균에 가깝고, blur에 의해 왜곡된 스테레오 이미지의 양안 품질은 고품질 단안 이미지에 의해 지배된다고 연구했다[3]. 


Seuntiens 등은 스테레오 이미지가 JPEG 압축에 의해 비대칭적으로 왜곡되었을 경우 두 단안 이미지의 평균 품질이 양안 품질을 반영한다는 것을 실험을 통해 밝혔다[4]. 


Chen 등은 white noise와 JPEG로 왜곡된 스테레오 이미지의 경우 양안 억제 현상을 관찰하지 못한 반면, blur와 JP2K로 왜곡된 스테레오 이미지에서는 양안 억제 현상을 관찰했다[1]. 또한 그들은 이전 연구들과 다르게 blur, JP2K, JPEG로 왜곡된 스테레오 이미지의 양안 품질은 단안 품질의 평균으로 결정되지 않고, white noise로 왜곡된 스테레오의 경우만 단안 품질의 평균으로 결정될 수 있다고 발표했다. 또한 blur, JP2K, JPEG으로 비대칭적으로 왜곡된 스테레오 이미지의 경우, 지역 콘트라스트가 큰 부분에 위치한 왜곡이 더 잘 보이게 된다고 밝혔다. blur와 JP2K로 비대칭적으로 왜곡된 스테레오 이미지의 경우, 깊이 변화가 큰 부분에 위치한 왜곡이 더 잘 보인다고 보고했다. 


이 연구 내용들을 종합해보자. block 왜곡(MPEG-2, JPEG)과 white noise가 있는 스테레오 이미지의 경우 양안 억제 현상을 관찰하기 힘든 반면, blur와 JP2K 왜곡이 있는 스테레오 이미지의 경우 양안 억제 현상을 관찰할 수 있다. 특히 white noise를 제외한, blur, JP2K, JPEG 왜곡이 이미지내 지역 콘트라스트가 큰 부분에 위치한 경우 더 잘 눈에 띄게 된다.   


Blur, JP2K => Strong binocular suppression

JPEG, WN => No binocular suppression or weak binocular suppression





<참고 문헌>

[1] M. -J. Chen, A. C. Bovik, L. K. Cormack, Study on distortion conspicuity in stereoscopically viewed 3D images, in: IEEE 10th IVMSP Workshop, 2011, pp.24–29. => 정독하자. 

[2] Chen M J , Su C C , Kwon D K , et al. Full-reference quality assessment of stereopairs accounting for rivalry[J]. Signal Processing: Image Communication, 2013, 28(9):1143-1155. 

[3] D. V. Meegan, L. B. Stelmach, and W. J. Tam, Unequal weighting of monocular inputs in binocular combination: implications for the compression of stereoscopic imagery.”, Journal of Experimental Psychology: Applied 7, 143-153, 2001.

[4] P. Seuntiëns, L. Meesters, and W. Ijsselsteijn, "Perceived quality of compressed stereoscopic images: Effects of symmetric and asymmetric JPEG coding and camera separation," ACM Trans. Appl. Percept., vol.3, no.2, pp. 95-109, 2006.

[5] Stelmach, L. B. and Tam, W. J. 1998. Stereoscopic image coding: effect of disparate image quality in left- and right-eye views. Signal Processing: Image Communications 14, 111–117.

[6] Robert Snowden 등 지음, "Basic Vision", OxfordUniversityPress(2006)

  1. BlogIcon 호원이 2018.12.20 15:38 신고

    포럼보고 왔어여:) 전문적인 내용 대단하십니다

지난 포스팅에서 SVM의 원리와 설정해줘야하는 대표적인 두 파라미터(C, gamma)의 의미에 대해서 알아보았다. 간단히 요약하면 SVM은 데이터를 클래스별로 분류할 때 정중간에 위치하는 선 또는 면(결정 경계)을 찾아내는 것이다. 파라미터 C는 이상치 또는 오류를 얼마나 허용하는 가를 정해주고, gamma는 결정 경계의 곡률을 결정해준다. 

오늘은 support vector machine (SVM)의 코드를 어디서 다운받고 어떻게 사용하는지에 대해서 살펴보려고 한다. 

Chih-Chung Chang과 Chih-Jen Lin은 SVM 라이브러리(LIBSVM)를 아래 사이트에서 제공하고 있다. => https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 

이 라이브러리가 좋은 점은 성능은 물론이거니와 계속해서 업데이트시켜가고 있다는 것이다. 나도 여기서 제공하는 matlab 코드를 활용하고 있다. matlab 말고도 Java, R, Python 등 다양한 언어로 작성된 SVM 코드를 제공한다. 이 글에서는 matlab 코드를 어떻게 실행하는지에 대해 중점적으로 설명하겠다. 


▶ 다운로드 및 설치

우선 최신 버전을 다운로드 받는다. 현재 (20181212) 기준 version 3.23을 다운로드 받을 수 있다. 


여기서 zip.file을 클릭해서 다운로드한 다음에 압축을 푼다. 압축을 풀고나면 java, matlab, python 등의 폴더를 확인할 수 있다. 




우리는 이중에서 matlab 폴더를 연다. 




m파일이 하나 밖에 보이지 않아서 살짝 당황스러웠다. 하지만 README를 열어 읽어보니 자세히 설명이 되어 있었다. 결과적으로 우리는 단순히 매트랩 명령창에 make만 타입하면 된다. 


>> make 


그러면 libsvmread.mexw64, libsvmwrite.mexw64, svmtrain.mexw64, svmpredict.mexw64가 빌드된다. 이 중에서 우리가 사용할 것은 svmtrain.mexw64와 svmpredict.mexw64이다. 





▶ 사용법

SVM은 지도학습이기 때문에 일반적으로 label 값이 있는 데이터에 사용할 수 있다. 보통 여러 개의 샘플들에서 도출한 특성들과 그에 대응하는 라벨값을 가지고 SVM 모델을 훈련한 후, 훈련이 완료되면 테스트를 진행한다. 
 
우선 SVM 모델을 훈련시키는 방법부터 알아보자.  

>> model = svmtrain(training_label_vector, training_instance_matrix, ['libsvm_options'])

여기서 training_label_vector 자리에는 훈련 데이터셋의 라벨값 벡터가 들어가야 하는데, m x 1 벡터(m: 훈련 데이터셋의 개수)의 형태가 되어야 하고, 타입은 double이어야 한다. 또한 training_instance_matrix 자리에는 훈련 데이터셋의 특성값 행렬이 들어가야 한다. m x n 행렬(n: 샘플 당 특성 개수)이어야 하고, 타입은 역시 double이어야 한다. 그리고 libsvm_options은 SVM 타입 및 파라미터 설정을 위한 공간이다. 이에 대해서는 아래에서 설명하겠다. 

위와 같은 방식으로 SVM 모델이 훈련되었다면, 이제 테스트 셋의 특성을 이용해서 테스트 셋의 라벨값을 예측할 수 있다. 

>> [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model);

여기서 testing_label_vector 자리에는 테스트 데이터셋의 라벨값 벡터가 들어가야 하고, testing_instance_matrix 자리에는 테스트 데이터셋의 특성값 행렬이 들어가야 한다. 그리고 model에는 훈련된 SVM 모델을 넣어주면 된다. testing_label_vector를 넣어주는 것이 다소 의아할 수 있는데, 이는 예측한 결과와 비교를 위한 것일 뿐 예측할 때는 테스트 데이터셋의 라벨값을 전혀 참고하지 않는다는 사실을 기억하자. 

svmpredict의 출력값들을 살펴보자. 첫번째 predicted_label은 테스트셋의 예측된 라벨값들을 담고있는 벡터이다. 두번째 accuracy는 분류 문제의 경우 정확도를 담은 벡터이고, 회귀 문제의 경우 평균제곱오차(mean squared error, MSE)와 결정계수(squared correlation coefficient)를 담은 벡터이다. 참고로 결정계수가 0.65이상이면 의미 있는 회귀식으로 본다. 세번째 decision_values/prob_estimates는 결정값 또는 확률 측정값을 담고 있는 행렬이다. 


▶ SVM 타입 및 파라미터 설정 

사용할 때 먼저 SVM의 타입을 선택해야 하는데 선택할 수 있는 것들은 5개가 있다: C-SVC, nu-SVM, one-class SVM, epsilon-SVR, nu-SVR. 

각각 어떤 것을 의미하는지 알아보자.

-s svm_type
0 -> C-SVC: regularized support vector classification
1 -> nu-SVC: automatically regularized support vector classification
2 -> one-class SVM: select a hyper-sphere to maximize density
3 -> epsilon-SVR: support vector regression robust to small epsilon errors
4 -> nu-SVR: support vector regression automatically minimize epsilon

그리고 커널의 타입도 선택할 수 있다. 

-t kernel-type
0 -> linear
1 -> polynomial
2 -> radial basis
3 -> sigmoid

SVM의 중요한 파라미터들인 C와 gamma도 설정해줄 수 있다. 

-c cost
-g gamma

또한 커널 함수의 degree도 설정할 수 있다.

-d degree 

이뿐만 아니라 여러 파라미터들이 더 있지만 디폴트값으로 그냥 설정해주는 것을 추천한다. 파라미터가 너무 많으면 그만큼 조합의 개수가 많아지기 때문에 최적의 조합을 찾기가 쉽지 않기 때문이다. 

만약 회귀문제를 풀기 위해 radial basis 커널 epsilon-SVR을 선택하고 C = 10, gamma = 1로 설정하고 싶다면 아래와 같이 입력해주면 된다.

'-s 3 -t 2 -c 10 -g 1' 


▶ 예제

그렇다면 하나의 예제를 풀어보자. 윈스콘신 유방암 데이터셋을 활용해서 세포의 주인이 유방암인지 아닌지를 분류(classification)해내는 문제를 풀어보자. 683개의 샘플이 있고, 각 샘플당 9개의 특성이 도출되어 있다. 물론 라벨값들이 있다. 나는 이중에서 80%에 해당하는 샘플을 이용해서 SVM 모델을 훈련시켰고, 나머지 20%의 샘플을 이용해서 예측 성능을 평가했다. 

분류모델을 훈련해야하기 때문에 -s 는 0으로 셋팅했고, 커널함수는 radial basis function을 선택했다. C와 gamma는 몇 번의 시행착오를 통해 좋은 성능을 내는 값으로 설정했다. SVM의 버전을 명시하기 위해 svmtrain323, svmpredict323으로 이름을 바꿔줬다.

구현된 matlab 코드는 다음과 같다. 

clc, clear, close all

data = load('breast_cancer1.txt');
feature = data(:, 2:10); % 특성값
label = data(:, 11);  % 라벨값

feature = zscore(feature); % 특성값이 -1에서 1사이, 평균 0이 되도록 표준화.  

train_feat = feature(1:round(end*0.8), :); % 80%는 훈련용
test_feat = feature(round(end*0.8)+1:end, :); % 20%는 테스트용

train_label = label(1:round(end*0.8)); % 80%는 훈련용
test_label = label(round(end*0.8)+1:end); % 20%는 테스트용


libsvm_options = '-s 0 -t 3 -c 10 -g 2';

svm_model = svmtrain323(train_label, train_feat, libsvm_options);
[predicted_label, accuracy, decision_value] = svmpredict323(test_label, test_feat, svm_model);

위 코드를 작성하고 실행해보자. 매틀랩 명령창에 뜬 분류 정확도를 캡쳐했다. 

예측 정확도.


98.5401%의 정확도를 보였다. 137개의 테스트 데이터 중에 135개의 클래스를 정확히 맞춘 것이니 정확도가 꽤높다. 여기서 사용된 9개의 특성은 유방암 환자인지 여부를 알아내는데 상당히 의미있는 특성들인 것이다. 아무리 좋은 머신러닝, 딥러닝 알고리즘을 사용하더라도 특성이 별로라면 좋은 성능을 보이기 어렵다는 것을 기억하자. 이때는 알고리즘을 바꾸는 것이 아니라, 특성을 바꿔야 한다. 


참고로 더 섬세하게 grid search를 진행하면, 100% 정확한 결과를 산출할 수 있을 지도 모르겠다. 하지만 그것이 이 포스팅의 목적은 아니니, 나는 괜찮은 결과를 보이는 파라미터 값들을 몇 번의 시행을 통해 찾았다.



▶ 정리

LIBSVM 라이브러리를 이용해서 matlab에서 SVM을 활용하는 방법에 대해 알아봤다. 누군가에게 조금이나마 도움이 되길 기원하며 글을 매조짓는다. 


<참고 자료>
[1] 김의중 지음, "인공지능, 머신러닝, 딥러닝 입문", 위키북스(2016)


+ Recent posts

티스토리 툴바