- 2021년 1월 11일 오후 3:40
- 조회수: 4028
REFERENCES
INFORMATION
- 2021년 1월 15일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
[1] Leslie, C., Eskin, E., & Noble, W. S. (2001). The spectrum kernel: A string kernel for SVM protein classification. In Biocomputing 2002 (pp. 564-575).
[2] Leslie, C. S., Eskin, E., Cohen, A., Weston, J., & Noble, W. S. (2004). Mismatch string kernels for discriminative protein classification. Bioinformatics, 20(4), 467-476.
[3] Lodhi, H., Saunders, C., Shawe-Taylor, J., Cristianini, N., & Watkins, C. (2002). Text classification using string kernels. Journal of Machine Learning Research, 2(Feb), 419-444.
발표자 후기
오늘 세미나에선 sequence data를 위한 kernel method를 소개했다. Kernel method는 선형분류를 위해 비선형변환을 수행하는 함수를 모델에 적용하는 과정을 말하고, 오늘 이산형 sequence 데이터에 관한 kernel 기법 (1) spectrum kernel, (2) mismatch kernel, (3) substring kernel에 대해 소개했다. Kernel method를 되짚어보며 최근에는 어떤 연구들이 수행되는지 살펴보았는데 sequence 데이터를 많이 다루는 bioinformatics 분야에서 연구가 주를 이어 수행되고 있었다. 유전자 염기서열 데이터 분석은 여전히 활발히 이루어지고 있으며 특히, 딥러닝 방법론이 각광받는 요즘에도 kernel method를 수행하는 연구가 어떤 장점을 갖고 있는 지 궁금했는데, 내 생각엔 text 와 같은 string 종류가 매우 광범위한 상태에서 embedding layer와 복잡도 높은 모델을 적용시키기 보다는 데이터 특성에 맞게 시퀀스 특징을 좀더 잘 추출하는 방향이 더 효율적 작용되는 것 보였다. 또한, 딥러닝과 kernel method 를 결합한 연구도 꽤 되었는데 좀 더 살펴보고 관련지어 연구할 수 있을 지 생각해봐야겠다. 끝으로 오늘 세미나로 kernel 기법에 관한 전반적인 내용과 string kernel에 대해 짚어볼 수 있는 시간이 되었기 바랍니다. 감사합니다.
청취자 후기
금일 세미나는 Introduction to kernel methods for sequence라는 주제로 윤상오빠가 진행해주었다. 먼저, 선형분류를 살펴보면 하나의 ‘직선’으로 class를 구분 짓는 것을 알 수 있다. 하지만, 모든 분류문제들이 직선으로 정의된 class를 구분할 수 있는 것은 아니며 ‘곡선’의 형태로 분류가 이루어져야 만하는 경우들이 있다. 이와 같이 linear classifier를 분류 가능하게 하는 것을 kernel method라고 한다. Kernel method는 저차원의 데이터를 고차원으로 표상하여 고차원상에서 선형분류를 하는 것이 개괄적인 컨셉이라 할 수 있으며, 저차원의 데이터를 고차원으로 변환하기 위한 함수를 mapping function이라 한다.
하지만, 모델(decision boundary)을 구축하는 과정에서 데이터의 내적에 대한 연산이 필요로 하는 경우 저차원 데이터를 고차원 데이터로 변환하기위한 mapping function은 모든 관측치에 대해 수행하는 것은 연산 관점에서 어려움이 있다. 따라서 이러한 점을 해소기하기 위해서는 kernel function을 적용시키는 과정이 필요하다. Kernel function은 mapping function의 내적으로 표현가능한 함수로 목적함수와 같은 수식에서 벡터의 내적이 포함될 때, kernel function으로 대체하여 계산할 수 있다. 이와 같은 kernel trick이 적용가능한 알고리즘에는 (1) kernel-SVM, (2) kernel-PCA, (3) kernel-FDA가 있으며, kernel function에는 (1) polynomial kernel, (2) RBF kernel, (3) Hyperbolic tangent kernel이 있다.
이러한 kernel method들을 sequence data에 적용한 사례들을 살펴보기 앞서 sequence data는 이산형 변수들의 나열인 것을 알 수 있다. Sequence data에 적합한 kernel function을 구축하기 위해서는 먼저, character순차정보를 feature space에 표현해야 하며, mapping function으로 표현하여 kernel function에 적용가능해야한다. 먼저, Spectrum kernel은 k-mer에 대한 빈도수를 연산한 뒤에 이에 대한 내적을 수행한다. 동일한 k-mer을 많이 공유한 경우 큰 커널 값을 갖는 지표로 활용된다. Mismatch kernel은 빈출된 k-mer set만을 고려하는 것이 아닌, 두 k-mer비교시 길이내 교집합이 생기는 경우를 확인하고, 이에대한 row summation값을 활용하게 된다. 이는 특정 시점내에 문자열이 정확하게 일치하지 않더라도 범위를 넓혀 비교가 가능하다는 이점이 있다. 마지막으로 substring kernel은 특정 자리에 있는 문자열 substring과 이에 대한 길이를 의미하는 length of substring을 정의한다. 또한, length of substring의 크기와 반비례인 lambda를 정의한다.
금일 세미나를 통해 kernel function에 대한 개념 정립, kernel trick의 필요성 더 나아가 sequence data에 적용가능한 kernel function들을 소개받을 수 있었다. 여러 알고리즘에 대해 배울 때마다 듣고도 매번 이해를 제대로 하지 못한 채 넘어가온 개념들이었는데, 오늘 윤상오빠가 오빠만의 언어로 잘 정리해준 세미나를 토대로 이해할 수 있었다. 윤상오빠가 수행중인 sequence data embedding 방법론 연구도 잘 마무리되길 응원한다!
Kernel Fucntion은 고차원의 implicit feature space으로 mapping된 데이터 좌표를 직접적으로 계산하지 않고, mapping된 모든 데이터쌍 사이 내적을 대신 계산하는 방법론이며, 계산적으로 저렴하고 explicit하게 mapping function을 이용하지 않아도 된다는 점에서 널리 쓰인 트릭이다. 널리 쓰이는 Kernel Function으로는 Polynomial Kernel, RBF Kernel 등이 있으며 금일 집중적으로 소개된 Kernel은 Discrete sequence에 적용하는 'String Kernel'로서 총 3가지를 살펴보았다. 가장 기본적인 baseline이 되는 Spectrum Kernel은 substring의 빈도수 내적값을 Kernel Function으로 사용한다. 2년 뒤에 나온 Mismatch Kernel은 이에 더 나아가 일정한 길이(M) 만큼 일치하는 않는 경우도 고려하여 두 sequence 간 특정 시점에 문자열이 일치하지 않더라도 범위를 넓혀 유사성을 측정하였다. 마지막으로 소개된 Substring Kernel은 앞선 두 방식과 다르게 substring의 길이의 'gap'을 고려하여 이에 따른 가중치를 주어 유사도를 계산하는 방식으로서 더욱 일반화된 방법론임을 알 수 있었다. 최근 딥러닝 기반 모델들이 좋은 성능을 내고, 사실상 NN가 학습가능한 Kernel Function이므로, Kernel method에 대한 고려를 거의 안하고 있었으나, 찾아보니 몇몇 분야(e.g Bioinformatics)에서는 아직 커널 트릭을 이용한 방법론을 쓰고 있다는 점이 신선하게 다가왔다. 머신러닝을 배우는 사람이라면 누구나 한번즘 짚고 넘어갈 Kernel Method에 대해, 다시 한번 깔끔하게 recap해주는 세미나를 준비해주신 윤상이형에게 감사의 말을 전한다.
금일 세미나는 “Introduction to Kernel Methods for Sequences”의 주제로 진행되었다. 우선 Kernel Method란 저차원에서 직선 분류기로 분류하기 어려운 경우에 고차원에서 선형 분류를 하도록 도와주는 함수에 해당한다. 저차원의 데이터를 고차원으로 매핑시키기 위하여 Mapping Function을 사용하는데, 실제로 모든 인풋 데이터를 고차원으로 매핑시키는 것은 매우 어렵기 때문에 Mapping Function의 내적으로 표현이 가능한 Kernel Function으로 원 데이터에 대한 고차원 상의 매핑을 진행하게 된다. 이와 같이 커널 함수로 대치하여 계산하는 과정을 Kernel Trick이라 부른다.
이번 세미나는 특히 Sequence data를 고차원의 Feature Space로 잘 정의하기 위하여 제안된 여러 Kernel Function들 (String Kernel)에 대하여 알아볼 수 있었다. String Kernel의 가장 기본이 되는 Spectrum Kernel은 일정한 길이(k)로 모든 경우의 수를 나열한 후, 주어진 문자열에 대하여 각각 해당하는 경우의 빈도수를 계산하게 된다. 이 때, 각 벡터에 대한 내적을 통하여 Sequence간의 유사도를 계산할 수 있다. Mismatch Kernel은 Spectrum Kernel과 동일하게 계산하되 어느 정도 다른 경우도 함께 고려하는 방법으로, 범위를 넓혀 유사성을 측정한다. 마지막으로 Substring Kernel은 전체 문자열 중 특정 자리에 위치한 문자들만 가져오는 substring set과, substring을 가져온 인덱스의 차이인 gap을 활용하여 gap이 작을수록 더 유사성이 높다고 판단하는 방법이다. 특히 Kernel Normalization을 추가적으로 활용하여 코사인 유사도를 계산하는 방식과 같이 두 Sequence data간의 유사도를 계산한다.
최근 윤상오빠께 String Kernel에 대하여 추천을 받아서 개인 연구에 적용시켜보고자 공부하고 있었는데, 이렇게 세미나를 통하여 이론의 핵심 내용을 잘 이해할 수 있어서 큰 도움이 되었다. 이번 세미나에서 공부한 내용을 더 깊이 이해하여 Sequence data를 다루는 다양한 연구들에 적용시켜보아도 좋을 것이라 생각된다.
단백질, 유전자 등 카테고리로 이루어진 시퀀스 데이터에 대한 커널 기법에 대해 알아보았다. 커널 메소드는 저차원 데이터를 좀 더 잘 분류할 수 있도록 고차원에 매핑 시키는 방법이다. 대표적으로 선형 모델로는 Decision Boundary를 정할 수 없는 상황, XOR 문제나 도넛형으로 분포되어있을 때, x와 y의 조합으로 새로운 z축을 표현하여 hyper plane을 긋는 방법이 있다. 그렇다면 시퀀스 데이터에서는 어떤 커널 메소드를 사용할까? 오늘 3가지 방법론에 대하여 알아보았는데, 대표적인 scheme은 하나다. 특정 substring 에 대한 frequency, gap 등을 이용하여 전체 시퀀스의 유사도를 파악하는 것이다. 짧으면서도 직관적이고 명료한 세미나였다. 준비해주신 윤상이형께 감사의 말씀을 드린다.
연구실 캡틴 윤상 선배님이 Sequential 데이터에 적합한 kernel 기법들을 소개해주었다. 커널 기법을 사용하는 대표 모델 SVM를 예시로 커널 함수 정의와 의의에 대해 설명해주었다. 딥러닝이 등장하기 전까지 성능이 좋아 많은 인기를 누렸던 모델이기에 친숙했다. 하지만, 본인이 알고 있는 커널 기법들은 대부분 시계열성을 반영하지는 않는 기법들이였다. 금일 세미나는 Sequential 데이터에 대한 설명과 Sequential 데이터 전용 커널 기법 3개(Spectrum kernel, mismatch kernel, substring kernel)를 소개해주었다. 시계열 데이터하면 순환 신경망 딥러닝 모델들을 떠올리곤 했는데, 시계열 데이터에 적합한 커널 기법을 알았으니 딥러닝을 사용하기 힘든 경우나, kernel 기법을 응용한 딥러닝 연구에 활용하면 좋겠다고 생각하였다. 정리가 잘 된 세미나를 준비해 준 윤상이 형에게 감사의 말씀을 전하고 싶다.
이번 세미나는 Sequence 데이터를 위한 Kernel methods를 주제로 진행되었다. Kernel에 대해 들어본 적은 있지만 어떤 개념인지 정확하게 파악하고 있지 못하던 참에 세미나를 통해 자세한 내용을 접할 수 있었다. Kernel method는 선형 모델로부터 직선이 아닌 형태의 decision boundary로 분류할 수 있는 방법이다. Sequence data를 위한 kernel fuction(mapping function의 내적으로 표현 가능한 함수)은 Mapping function과 Kernel trick이 요구된다. Mapping function은 원본 데이터를 고차원 데이터로 디자인하는 함수이며 Kernel trick은 어떤 수식이 벡터의 내적을 포함할 때 kernel function으로 대치하여 계산하는 행위를 의미한다. 이 두 가지 요구 사항을 만족하는 대표적인 Kernel에는 Spectrum kernel, Mismatch kernel, Substring kernel이 있다. Spectrum kernel은 특정 길이의 문자열의 빈도수로 Mapping function을 정의하며 sequence 길이에 관계없이 모두 고정된 차원으로 표현할 수 있다는 장점이 있다. 빈도수가 비슷한 sequence일수록 큰 kernel 값이 출력되기 때문에 이 값을 통해 sequence 간의 유사도를 측정할 수 있다. Mismatch kernel은 Spectrum kernel에서 일부 변형된 형태로 m 변수를 추가하여 m 길이만큼 일치하지 않는 경우도 고려할 수 있는 방법이다. sequence 데이터 특성상 특정 시점보다 더 넓은 범위의 유사도 측정이 필요할 때 유용하다. Substring kernel에서 substring이란 특정 자리에 있는 문자열을 의미하며 substring을 결정하기 위한 hyperparameter로 k(substring 요소의 개수), i(substring 요소로 몇 번째 문자들을 가져올지) 등이 있다. Mapping function의 lambda는 substring의 길이가 증가할수록 값이 감소하여 같은 substring이어도 gap이 크면 서로 유사하다고 보기 어렵다는 점을 반영한다. 이번 세미나를 통해 Kernel의 개념뿐만 아니라 Kernel의 다양한 기법에 대해 이해할 수 있었다. 비슷한 듯 보이지만 각각 다른 아이디어가 들어가 완전히 다른 output을 내는 다양한 방법론이 있음을 다시 느낄 수 있었다. 설명을 말로만 들으면 조금 헷갈릴 수도 있는 부분들이었는데 구체적인 수식과 예시로 설명해 주셔서 이해에 많은 도움이 되었다. 나도 언젠가 내가 공부한 내용을 발표하게 되었을 때 청취차가 쉽게 이해할 수 있도록 명료한 설명과 적절한 예시를 잘 준비해야겠다고 생각했다.
이번 세미나는 "Introduction to kernel methods for sequences" 라는 주제로 진행이 되었다. 세미나는 크게 "Kernel Method"의 대한 의미와 "Sequence data"에 활용되는 가장 일반적인 3가지 Kernel에 대해 알아볼 수 있었다. Kernel method란 차원이 낮은 데이터를 고차원으로 mapping 시켜 선형분류를 진행하는 방법이다. 데이터를 고차원으로 mapping 시키기 위하여 mapping function을 사용하고, mapping function들 의내적을 Kernel Function으로 대처하기 위한 Kernel trick의 방법을 사용한다.
또한, "Sequence data"들을 위해서 제안된 Spectrum kernel/Mismatch kernel/Substring kernel의 3가지 기법에 대하여 알아볼 수 있었다. k의 일정한 길이로 경우의 수들을 모두 counting하는 Spectrum kernel. 서로 다른 sequence에서 문자열이 일치하지 않을 때의 범위를 넓혀서 유사성을 측정하게 되는 Mismatch kernel. Sequence data에서의 substring들의 index의 차이인 "gap" 을 활용하여서 유사성을 판단하는 substring kernel. 각각의 기법들의 의미를 하나씩 예시를 들어가며 설명이 되었기에 대략적으로 알고 있던 내용의 개념들을 명확하게 잡고 갈 수 있었던 기회가 되었다. 아직 부족한 점이 많아서 이해하기 어려울 수 있었지만 이해하기 편한 발표를 준비해준 발표자에게 감사의 말씀을 전하고 싶다.
이번 세미나는 Sequence data를 위한 Kernel method를 주제로 하여 진행되었다. 먼저 mapping function에 대한 개념 설명이 있었는데, mapping function은 선형으로 분류하기 어려운 데이터를 고차원의 feature space로 변환하여 비선형 분류를 할 수 있게 해준다. 하지만 이 때 모든 data point에 대한 mapping function을 정의하는 것은 어려운 일이 되는데, 이것을 해결해주는 것이 kernel trick이다. SVM를 예시로 보면, mapping function을 적용하여 내적을 구해야 하는데, mapping function을 따로 정의하지 않고 mapping function의 내적을 표현하는 kernel function을 정의하여 대치함으로써 결과를 쉽게 계산할 수 있는 것이 바로 kernel method이다. 이러한 kernel method를 sequence data에 적용한 방법론으로 세 가지가 소개되었다. 첫번째는 Spectrum kernel이다. Spectrum kernel은 sequence data의 substring의 빈도수를 고려하는 방법으로, k 길이를 가지는 substring을 빈도수로 표현하는 방법이다. 이는 sequence data의 길이에 관계없이 fixed-length의 차원으로 표현할 수 있다는 특징이 있고, 동일한 k-mer를 많이 공유하면 큰 kernel값을 갖게 되어 sequence data의 유사성을 나타내는 지표로 사용할 수 있다. 두번째는 Mismatch kernel인데, spectrum kernel에서는 완전히 일치하는 경우만 count한 반면, Mismatch는 m 길이만큼은 일치하지 않는 경우도 고려하는 방법이다. Mismatch kernel은 고려하는 범위가 넓기 때문에 sequence data간 특정 시점에 문자열이 일치하지 않더라도 유사성을 측정할 수 있다는 특징이 있다. 세번째 방법인 Substring kernel은 substring 길이의 gap까지 고려하여 유사도를 정의하는 방법이다. 이번 세미나를 통해 sequence data에 적용할 수 있는 kernel method로 기본적인 세 가지 방법을 알 수 있었는데, sequence data를 다루기 위해 기본적으로 알고 있어야 하는 내용이라고 생각된다. 강의에서 배웠던 kernel method에 대해 다시 한번 개념정리할 수 있었던 시간이었고, sequence data를 위한 kernel function에 대해 새롭게 알게 된 시간이었다. 이해하기 쉽고 깔끔하게 설명해준 조윤상 연구원에게 감사의 말을 전한다.
이번 세미나를 통해서 sequence data에서 kernel method가 어떻게 활용되고 있는지에 대해 알아볼 수 있었다. 머신러닝 알고리즘에서 선형분류가 어려운 경우, mapping function을 통해 원본데이터를 고차원 데이터로 매핑시켜 선형분류를 가능하게 만든다. 하지만 이때 모든 데이터를 매핑시키는 것이 어렵기 때문에 mapping function의 내적으로 표현 가능한 kernel function으로 대치하여 계산하는데 이를 kernel trick이라고 한다.
단백질 데이터나 손글씨의 획 상태 데이터 등의 이산형 변수의 series로 나타나는 sequence data를 처리하는 과정에서도 kernel trick이 유용하게 사용된다. 먼저 k길이를 가지는 문자열의 빈도수를 표시한 벡터를 내적한 값을 kernel 값으로 정해 유사성이 클 수록 큰 값을 가지도록 하는 spectrum kernel이 있었다. 이보다 한단계 더 나아가 Mismatch kernel은 데이터가 가지고 있는 문자열이 다른 문자열과 얼마나 유사한지의 정도를 반영한 값을 사용해 분류 모델의 정확도를 높였다. 마지막으로 소개된 substring kernel은 k개의 substring을 추출하고 substring 간의 gap을 고려해 weight를 주어 유사도를 정의하는 값을 사용하였다.
kernel method의 정확도를 높이기 위해 유사도를 측정하기 위한 다양한 아이디어들이 시도되고 있는것을 살펴볼 수 있는 좋은 시간이었다. 핵심을 간결하게 설명해주셔서 쉽게 이해할 수 있어 준비해주신 연구원님께 감사한 마음을 전하고 싶다.
sequence data를 모델에 적용할 때 효과적인 표현을 위해 Kernel method를 사용하고, 이에 핵심적인 3가지 kernel 들을 살펴보고, 이해할 수 있었다.
저차원 공간에서 선형 분리가 되지 않은 데이터를 고차원 공간에 mapping하여 선형 분리가 되도록 하는데, 이 때 mapping function이 필요하다. 하지만, mapping function은 변수의 수가 늘수록 적합한 mapping function을 찾기가 어렵기 때문에 mapping function의 내적으로 표현 가능한 함수인 kernel function이 쓰인다.
Biological data 중 단백질 데이터처럼 여러 종류의 sequence data를 분류 문제를 수행하고 할 때, 적절한 kernel function을 설계해야 하는데, 이때 feature의 순차 정보를 feature space에 표현하고, mapping fuction의 내적으로 표현하여 kernel trick을 적용할 수 있어야 한다.
상기 두 가지 작업을 수행하는 대표적 kernel method 3가지를 소개한다. 각각은 Spectrum kernel, Mismatch kernel, Substring kernel 이다. Spectrum kernel은 특정 데이터의 k길이를 가질 수 있는 문자열의 빈도수를 나타내어 동일한 k-mer를 많이 공유할 경우 Sequence 의 유사함을 보여준다. Mismatch kernel은 앞선 방법에 더하여 m 길이만큼 일치하지 않는 경우도 고려하여 각 sequence data를 mapping한다. 특정 시점에 문자열이 일치하지 않더라도 범위를 넓힌다는 특징을 담고 있다. Substring kernel은 k개의 substring을 뽑아 그 차이에 weight를 주는 방법이다.
세미나를 통해 kernel method 의 주요 개념들을 배울 수 있었고, 쉬운 예시를 통해 다소 어렵게 느껴질 수 있었던 개념들을 친절히 발표를 해주신 발표자 선배님께 감사의 말씀을 전합니다.
이번 세미나는 원본 data들을 결정경계를 통해 각 그룹으로 분류하기 위한 방법 중에,
선형 분류 모델로는 분류하기 어려운 data 가공 과정을 배우고, 나아가 Sequence data를 위한 kernel 기법에 대해 소개해주셨다.
우선 선형분류가 어려운 원본 Data를 적절히 고차원으로 만들어 준 다음 그상태에서 선형 분류할 수 있도록 진행하는데, 이를 mapping function을 통해 바꿔 주었다. 그런데 여기서 분류에 알맞는 mapping 수식 찾는것도, 계산 자체도 어려움이 있기 때문에, kernel fucntion을 적용하게 된다.
kernel function은 mapping fuction의 내적으로 표현가능한 함수로, 고차원 변환시에 일일이 mapping function으로 계산하기 이전에 이 kernel로 대치하여 계산하자는 것이 kernel trick 이었다. 다만 이런 kernel이 내적으로 표현 가능한 함수라는, 수학적인 부분(Mercer's theorem)은.. 구글링을 해봤음에도 좀 까다로웠다.
이러한 kernel 기법들 중에서 sequence data에 적용하는 기법들에 대해 소개해주셨는데,
String Kernel이라고 하는 것중에 가장 널리 이용하는 세가지 방법을 설명해 주셨고,
spectrum kernel은 문자열의 빈도수로 표현해서 이 k-mer set끼리 곱해서 더하는 식인데, 같은 것의 빈도가 많을수록 큰 커널 값을 갖기 때문에 유사성의 지표로 사용 가능했고, mismatch kernel은 m길이만큼에서 일치하지 않는 경우도 고려해서 1,0 값을 넣고, 그 열에 있는 값을 더한 것으로 mapping 함수값으로 사용하는 방법이었다. mismatch를 사용하는 경우는 생물학적 시퀀스 특징을 고려했을 때, 문자열이 약간 일치하지 않더라도 포함하여 고려할 수 있는 방법이기 때문이라고 한다. substring kernel의 경우는 substring 사이의 gap을 반영하여 값으로 사용하고, 정규화를 수행해서 유사성을 비교했다.
이번 세미나는 생각보다 어려워서 여러번 되돌아가며 들었는데, 들을수록 많은 내용을 핵심적으로 잘 알려주신 것 같다는 생각이 든다. 감사합니다.
이번 세미나는 'Introduction to kernel methods for sequences'를 주제로 진행되었다. Kernel method는 원본 데이터를 고차원 데이터로 mapping하여 선형분류를 가능하게 하는 방법으로, 이때 원본 데이터를 고차원 데이터로 변환시키는 함수를 mapping function이라고 한다. 하지만 모든 데이터에서 적용 가능하고 좋은 성능의 mapping function을 찾기 어렵기에, 이에 적용되는 것이 바로 mapping function의 내적으로 표현 가능한 함수인 kernel function이다. 이산형 데이터의 나열인 sequence data를 위한 kernel function을 설계하기 위해서는 먼저 문자열 순차정보를 feature space에 표현하고, mapping function의 내적으로 표현하여 kernel trick을 적용할 수 있어야 한다. 본 세미나에서는 이 두 가지 작업을 수행하는 대표적 kernel methods로 3가지 기법 Spectrum kernel, Mismatch kernel, Substring kernel에 대해 소개해주었다. 먼저 Spectrum kernel은 k 길이를 가질 수 있는 문자열의 빈도수를 표현하여, 동일한 k-mer set을 많이 공유하는 sequence일 수록 큰 kernel값을 갖기 때문에 sequence가 유사한 것으로 해석된다. 다음 Mismatch kernel는 완벽하기 일치한 조합의 빈도만 세는 것이 아니라 어느정도 틀린 경우도 고려하고자 하는 아이디어를 반영하였다. 따라서 두 sequence간 특정 시점에 문자열이 일치하지 않더라도 범위를 넓혀 유사성을 측정할 수 있다는 장점을 가진다. 마지막으로 Substring kernel은 앞의 두 기법과 달리 문자열 길이의 gap을 고려한 weight 값을 기반으로 유사도를 정의하여, 같은 substring이어도 gap이 크면 그 둘이 유사하다고 보기 어렵다고 해석된다. 이번 세미나를 통해 feature space를 어떻게 정의하는가에 대한 커널 기법들 중 가장 널리 알려진 3가지 기법에 대해 구체적으로 살펴볼 수 있어 매우 흥미로웠다. 이후 sequence data와 관련한 다양한 연구들에 대해 더 공부해보고 싶어졌으며 훌륭한 세미나를 준비해주신 조윤상 연구원께 감사의 말씀을 전하고 싶다.
이번 세미나는 "Introduction to kernel methods for sequences"를 주제로 진행되었다.
Deep learning이 하드웨어의 발전과 함께 주목 받으며 다른 algorithm들이 정확도를 따라오기 어려워 많이 잊히고 있지만, Kernel method는 다양한 장점을 바탕으로 연구가 이루어지고 있다.
Kernel method는 linear regression problem에서 Xor와 같이 풀 수 없는 경우를 해결하기 위해 고안된 개념으로 차원을 저차원에서 고차원으로 mapping 시켜 linear regression problem을 좀 더 정확하게 해결해줄 수 있는 방식이다. 이때, 모든 데이터를 mapping 시키는 것은 어려우므로 내적으로 표현 가능한 kernel trick 방식을 이용한다.
sequence data를 처리할 때에도 Kernel method는 유용하게 이용되는데, 가장 일반적으로 적용되는 spectrum, mismatch, substring kernels를 알 수 있었다. spectrum의 경우 빈도수 k에 따라 sequence data를 표현할 때, 동일한 k-mer를 많이 공유할 경우 큰 kernel value를 갖는 sequence similarity 지표이다. mismatch는 m 길이만큼 일치하지 않는 경우도 고려하는 방식으로 spectrum을 넓혀 similarity를 측정함으로써 정확도를 높였다. 마지막으로 substring은 특정 자리에 있는 substring을 뽑아 gap에 따라 weight를 주는 방식이다.
이처럼 다양한 kernel method를 통한 연구가 많이 이루어지고 있어 흥미롭다고 생각하고 있었는데, 이번 기회에 알 수 있어서 좋았고 kernel method를 발전시키거나 활용하는 연구를 해보면 재밌겠다고 느끼게 되었다.
좋은 내용으로 발표해주신 조윤상 연구원님께 감사하다는 말을 전하고 싶다.
이번주 세미나는 윤상이형이 ‘Introduction to Kernel Methods for Sequences’라는 주제로 진행하였다. Kernel Methods는 클레스를 linear하게 classify할 수 없는 경우에 사용되는 알고리즘이라고 볼 수 있다. 따라서 mapping function을 하여 고차원에 데이터 적용하게 되면 모든 데이터에 적용해서 mapping function을 찾기에는 무리가 있다. 이러한 방법을 해결하기 위한 방법론이 kernel function을 사용할 수 있다. 즉 kernel function은 mapping function의 내적으로 표현 가능한 함수라고 할 수 있다. 이러한 방법론을 가지고 sequence data에 적용하여 분류를 진행할 수 있다. Sequence data에 kernel function을 적용하는 방법론에는 spectrum kernel, Mismatch kernel, Substring kernel 등이 존재한다. Kernel methods에 대해 전반적으로 상세하게 설명해준 윤상이형에게 감사하다는 말을 전하고 싶다.
이번 세미나는 "Introduction to kernel methods for sequences"라는 주제로 진행되었습니다. Kernel method는 저차원에서 선형으로 분류가 불가능한 데이터를 고차원으로 보내서 고차원에서 선형으로 분류하는 방법을 의미합니다. 이때 저차원의 데이터를 고차원으로 보내는 함수를 mapping function이라고 합니다. Kernel method를 사용할 때 고차원에서 벡터의 내적을 계산할 경우 이를 mapping function을 이용하지 않고 커널 함수를 정의하여 저차원의 데이터로 직접 계산할 수 있습니다. 이를 kernel trick이라고 이야기하며 kernel method는 일반적으로 kernel trick을 적용하여 많이 사용합니다. 이번 세미나에서는 시퀀스 데이터에 적용될 수 있는 다양한 kernel method에 대해서 소개되었습니다. 첫번째는 spectrum kernel입니다. Spectrum kernel은 k의 길이를 가질 수 있는 모든 문자열의 빈도수를 통해서 시퀀스 데이터를 표현하는 방법입니다. 각 시퀀스는 spectrum kernel을 통해 일정한 길이의 벡터로 표현되며 해당 벡터의 내적을 통해 시퀀스 사이의 유사도를 표현할 수 있습니다. 두번째로 소개된 방법은 mismatch kernel입니다. Spectrum kernel이 완벽하게 동일한 문자열만 빈도수를 확인했다면 mismatch kernel은 k길이의 kernel과 약간의 유사성만 있어도 빈도수를 확인하게 됩니다. 따라서 데이터가 완벽하게 일치하지 않아도 범위를 넓혀 유사도를 측정해주기 때문에 더 많은 시퀀스와의 관계를 고려할 수 있게 됩니다. 마지막으로 소개된 방법은 substring kernel입니다. 앞선 두 방법론은 kernel의 길이를 고려하지 않았다면 substring kernel은 커널의 길이를 고려한 방법론입니다. 이를 통해 커널의 길이가 너무 길면 두 시퀀스가 유사하다고 보기 어렵다는 점을 반영하게 됩니다. 이번 세미나를 통해서 시퀀스 데이터에도 다양한 kernel method가 적용될 수 있다는 사실을 처음 알게 되어 의미 있는 세미나였습니다. 세미나를 위해 고생해준 윤상이형에게 감사의 뜻을 전하며 세미나 후기 마무리하겠습니다.
이번 세미나는 조윤상 연구원님이 Sequences data를 위한 kernel method에 대해 설명해 주었다.
Linear classifier의 개념과 Linear classifier의 문제점을 개선한 kernel method의 개념에 대해 쉽게 설명해 주셨다.
kernel method에서 데이터 고차원화에 대한 개념과 mapping function 에 개념에 대해 이해할 수 있었다.
개인적으로 생소했던 Sequences data의 형태와 대표하는 kernel 3가지( Spectrum Kernel, Mismatch Kernel, Substring Kernel)의 방법론도 쉽게 설명해 주셔서 조금이지만, 이해가 되는 부분이 있었다.
이제까지 인터넷에 떠돌아다니는 정보로만 공부하다가 세미나를 들으며 공부를 하니,
더 깊은 내용에 어려움도 있지만, 뭔가 목표를 향해서 제대로 가고 있다는 생각이 들었다.
바쁜 시간에 세미나를 준비해 주신 조윤상 연구원님 감사합니다.
금일 세미나는 윤상이형이 “Introduction to Kernel Methods for Sequences” 주제를 준비해주었다. 커널 기법은 지난 학기 수업 중 예측모델과 비즈니스어낼리틱스 강의를 통해서 흔하게 접했던 개념이라 익숙하였다. 일반적으로 실제 데이터 내 샘플을 선형 분류기로 완벽히 분류한다는 것은 불가능하기 때문에 저차원의 feature space가 아닌 고차원 공간으로 매핑하여 선형 분류를 통해 분류를 하게 된다. 이러한 과정을 실현 가능하도록 해주는 것이 커널 기법으로 모든 샘플마다 고차원으로 매핑하는 과정을 커널 기법 또는 커널 트릭이라고 한다. 이러한 커널 기법은 대표적인 선형 분류기 모델인 SVM에 적용할 수 있고 이를 Kernel-SVM 모델이라고 한다. Kernel-SVM은 다양한 태스크에서 우수한 분류 성능을 보이는 것으로 알려져있고, 커널 함수도 Polynomial, sigmoid, gaussian 등 다양한 종류가 있다는 것을 수업을 통해 배웠다. 이번 세미나에서는 수업 시간에 다루지 않았던 sequence data에 적합한 커널 함수로 String Kernel이라는 이론에 대해 윤상이형이 친절하게 설명해주었다. String Kernel의 대표적인 방법론으로 Spectrum kernel / Mismatch kernel / substring kernel이 있었다. Spectrum Kernel은 일정한 길이(k)를 갖는 모든 경우의 수를 집합으로 나타내어 이에 대한 빈도수를 측정하여 길이에 관계 없이 고정된 길이의 차원으로 표현 가능하다는 장점이 있다. Mismatch Kernel은 Spectrum Kernel과 유사하지만 완벽하게 일치하는 조합의 빈도 뿐만 아니라 어느정도 일치하지 않는 조합에 대해서도 고려를 하겠다는 아이디어를 가지고 있으며 보다 넓은 범위로 유사성을 탐색할 수 있다. Substring Kernel은 전체 문자열의 부분 집합을 substring set으로 표현하고 부분 집합 요소의 인덱스 값의 정보를 이용해 gap을 산출하고 gap 값이 클수록 유사성이 낮다는 것으로 이를 이용한다. 이번 세미나를 통해서 시퀀스 데이터에 적합한 대표적인 String Kernel 기법 이론에 대해서 이해를 할 수 있었던 것도 좋았지만 mismatch kernel을 소개한 저자가 특정 시점의 문자열이 일치하지 않더라도 수용 범위를 넓혀 유사성을 측정하여 분류 모델의 성능을 높일 수 있다고 표현했다는 것을 알 수 있어서 좋았다. 최근 개인 연구를 목적으로 bio-signal 데이터를 탐색하고 있었는데 이러한 정보가 추후 개인 연구하는 과정에서 좋은 정보가 될 수 있을 것이라 생각한다. 이번 세미나를 통해 유익한 정보를 이해하기 쉽고 친절하게 설명해주신 윤상이형에게 감사의 말씀 전하고 싶다.
이번 세미나는 sequence data에서의 kernel methods에 대하여 진행되었다. Sequence data는 이산형 변수의 시리즈로 구성되어 있다. Sequence data를 위한 kernel function을 설계하기 위해서는 문자열의 순서와 관련한 정보를 mapping function에 적용하고, mapping function의 내적으로 표현하는 kernel trick을 적용할 수 있어야 한다. 이 과정을 수행하는 대표적인 kernel에는 Spectrum kernel, Mismatch kernel, Substring kernel이 있다. Spectrum kernel는 substring의 빈도수를 고려하는 방식이다. 동일한 K-mer을 많이 공유할수록 큰 kernel 값을 갖기 때문에 sequence가 유사한 정도를 해석할 수 있다. Mismatch kernel은 Spectrum kernel의 변형 형태로, mismatch 경우를 포함해서 substring의 빈도수를 고려한다. 이 방식은 두 개의 sequence가 완벽하게 일치하지 않더라도 유사성을 특정할 수 있다는 장점이 있다. Spectrum kernel과 Mismatch kernel은 둘 다 gap은 고려하지는 않는다. 마지막으로 소개된 Substring kernel은 gap을 반영한 weight 값을 기반으로 유사도를 표현하는 방식이다. 세미나를 듣기 전에는 어렴풋이 알고 있던 내용이었는데, 자세한 예시와 간결한 설명을 통해 전보다 자세히 이해할 수 있게 되었다. 유익한 세미나를 진행해 주셔서 감사하다는 말을 전하고 싶다.
이번 세미나 주제는 'Introduction to kernel methods for sequences'로 윤상이형이 발표해 주었다. kernel method란 머신러닝에서 결정 경계를 선형으로 만들기 어려운 상황에서 원본 데이터를 고차원으로 매핑하여 선형 분류를 할 때 사용하는 방법인데 실제로 모든 데이터를 고차원으로 매핑하는 것은 매우 어려운 작업이기 때문에 커널 함수를 대신 사용하는 방법이다. 이 커널 함수는 매핑함수의 내적으로 표현이 가능한 함수이며 매핑함수 대신 커널 함수를 사용하는 것을 kernel trick이라고 한다.
이번 세미나에서는 sequence data에 적용하는 kernel 방법론 세 가지를 소개해 주었다. 먼저 스펙트럼 커널은 k-lenth를 가지는 문자열의 모든 경우의 수를 빈도로 표현하는 방법으로 두 시퀀스 간에 같은 k-문자열의 빈도수가 많을 수록 값이 커지므로 유사성을 나타내는 지표로 활용할 수 있다.
여기에 약간 다른 경우를 고려하는 미스매치 커널은 hyper parameter m을 추가하여 m 길이만큼 다른 문자열도 고려하는 방법으로 분류 정확도와 유사도에 있어서 성능이 향상시킬 수 있음을 알 수 있었다.
마지막으로 substring 커널은 전체 시퀀스에서 특정 인덱스에 위치한 문자들의 집합인 substring set과 substring 하나의 index의 차인 gap을 계산해서 유사도를 측정하는 방법이다. 여기에 kernel nomalization을 적용하면 코사인 유사도와 같은 식으로 표현되는데 이를 통해 두 시퀀스간의 유사도를 계산한다.
이번 세미나를 통해서 커널함수의 기본적인 개념과 이를 sequence data에 활용하는 string kernel method에 대해 이해할 수 있었습니다. 좋은 세미나를 해준 윤상이형에게 감사드리며 세미나 후기를 마칩니다.
이번 세미나에서는 윤상 오빠가 연구하고있는 순차 데이터를 위한 커널방법론에 대해서 세미나를 들을 수 있었다. Kernel method라는 것의 정의로 시작하기 보단 어떤 것을 가능하게 하는 지 설명하는 것으로 세미나가 시작되었다. 바로 정의나 수식으로 설명되면 이해가 어려울 청자를 위한 배려가 돋보이는 시작이었다. 이후 순차적으로 mapping function, kernel, kernel trick이 소개된 이후 제안 모델에 대해서 설명을 들을 수 있었다. 마지막으로는 Sequence 데이터가 어떤 종류가 있는지 sequence 데이터의 특징을 반영한 kernel의 종류 몇가지에 대해서 설명을 들을 수 있었다. Mapping function을 sequence 데이터의 특징을 어떻게 반영하여 정의하느냐가 연구의 핵심으로 진행된 것 같다. 오늘 설명된 내용이 기본적인 방법론들이고 그 이후에도 다양하게 발전되어 있다고 하니 다음에 필요할 때 오늘 세미나에서 설명된 키워드를 참고 할 수 있을 것 같다. 윤상오빠는 정말 든든한 동기이고 연구자로써나 인간적인 면으로나 곰탕(?) 진국같은 사람이다. 나와는 참 다르지만 배우고 싶은 점이 많은 사람이며 항상 응원한다고 이야기하며 후기를 마무리하겠다. 파이팅~!!!
이번 세미나는 "Introduction to kernel methods for sequences"라는 주제로 윤상이가 발표하였다. 분류를 예를 들면 경계면을 찾기 위해 비선형의 분류기준을 찾기 위해 처음에 저차원 데이터(원래 데이터)를 고차원(힐버트공간)으로 보내기 위해 매핑 함수을 사용한다고 한다. 그리고 선형분류모델인 SVM를 예를 들어서, 커널 트릭을 설명해주었다. 이전에 수업시간에 이해를 어렵게 하고 넘어갔는데 쉽게 설명을 해주어서 고마웠다. 즉 커널함수는 매핑function의 내적으로 표현가능한 함수이며, 매핑된 데이터의 차원이 클 경우, 매핑 함수를 찾기가 어렵고 계산 또한 쉽지가 않다. 이를 위해 커널 함수가 나온다. 두 데이터를 곱한것의 제곱을 커널함수라고 정의한다면 매핑 내적과 동일하다라는 예시를 통해 매핑 계산하지말고 커널함수를 통해서 내적 계산을 바로 하자는 개념에서 커널 트릭을 잘 설명해주었다. 그리고, 커널 함수 적용 가능한 알고리즘은 SVM, PCA, FDA가 있고, 매핑 함수의 내적으로 표현가능한(Mercer's theorem) 함수는Polynomial, RBF, Hyyperbolic Tangent가 있다.
그 다음으로 시퀀스 데이터로 확장한 커널들을 소개해주었다. 시퀀스 데이터는 이산형 연속 데이터로 단백질 염기서열 정보를 예를 들어주었다. 이런 데이터에 적용이 가능한 커널 함수들은 Mercer's thereom을 따르고 관측치의 유사도를 표현하고 있다고 하며, 일반적으로 String kernels라고 부른다고 한다. 크게 3가지를 소개해주었는데, Spectrum 커널은 substring의 빈도수 고려하되 gap은 고려하지 않는 커널, Mismatch 커널 정확히 안맞을 수 있는 Mismatch의 경우까지 감안하여 빈도수를 고려하되, 마찬가지로 gap은 고려하지 않았다. 마지막으로는 Substring 커널이 있다고 한고 이는 gap을 고료한 weight값을 기반이며 코사인 유사도를 정의 가능하다고 했다. gap을 고려하는 것이 사실 현실에서 더 의미가 있다고 생각이 들었다. SVM때 배웠던 내용이 이렇게 시퀀스 데이터에서도 확장하여 사용하다는 세계를 알려준 윤상이에게 감사의 마음을 전하고 싶다.