저번학기 미국 연구인턴 갔을때 1저자로 작성했던 논문!! IEEE International Conference 에 냈었는데 Accept 됐다.!


우리 논문은 Proceedings 에 publish 될 예정이고 나는 7월 중순에 그리스 아테네로 Oral Presentation 을 하러 갈 예정이다. (짝짝짝) 
다행히 학회 등록비, 숙박비는 미국 대학 측에서, 항공료는 경희대 측에서 지원해준다고 해서 나는 식비랑 여가비만 들고 간다. 학회 구경, 그리고 그리스 구경 재미있게 하고 와야지!
 암튼 그래서 이것저것 준비할 것들이 많다.. Review Revision 도 해야되고.. 
졸논2개준비하면서 학회갈준비하면서 학점챙기면서 어학공부할라니까 진짜 너무피곤하다. 시간이 너무 없다.
이건 좀 아닌 것 같다...
오늘도 오랜만에 친구들 만나기로했는데 못간다하고 도서관왔다. 해야할일을 쳐낼려면 어쩔 수 없다...
최근에는 좀 정신을 차리고 열심히 사는 중이다. 미국에서 돌아오자마자 이렇게 살았어야 했는데.
돌아오고 나서 겨울방학동안은 진짜 아무것도 안하고 빈둥대며 살았고,, 학기 초에도 최소한의 것들만 하면서 대충 살았는데.. 너무 후회가 된다!!!!
도서관에 있으니 마음이 편해져서 좋다.
최근에 푹 빠진 노래는 세븐틴의 손오공 이다. 노래 가사랑 안무가 너무 맘에들고 멋있고 중독적이다..
한마디로 내취향저격
세븐틴이 누군지는 모르지만.. 매일 듣고있다. 아마 앞으로도 쭉 내 최애 노래일듯??  
암튼,, 앞으로도 파이팅,,, 하루하루 잘 준비해서 목표를 이뤄야겠다.  
 
아래는 기록용으로 막 적음
김하일
case1)
24살 - 4학년
25-26살 카이스트석사(바뇌)
27살~31살 카이or미국 공학박사
32살 학업끝.. 이제포닥??? 
case2)
24살 - 4학년
25-26살 카이스트석사(바뇌)
27살~34살 의사+공학박사 =의사과학자/의사공학자
35살 학업끝.. 이제포닥??? 
의과학자/의공학자 가 될수도 있겠고 의사과학자/의사공학자가 될 수도 있겠다
미국으로간다면 아마 전자 카이스트에 남는다면 후자. 
의석박통) 31살 의과학박사
공석미박) 27살 석사 32 의과학박사
공석의박) 35살 의사+공학박사
의사과학자/의과학자 (의사공학자/의공학자)
- 계산 뇌과학/신경과학, 생물정보학
 
좀 더 내가 하고싶은 분야를 일찍 알았다면.. 더 이른 시기에 관련해서 이것저것 도전해보고 좋은 기회들을 잡을 수 있었을텐데.. 하는 아쉬운 마음은 있지만,
지금도 충분히 어린 나이이고, 세상에 뭔갈 이루기 늦은 나이는 전혀 없으니까.
조급해하지않고 열심히 살아야겠다. 
생각해보면 세상에서 뭔갈 이루고자 할 때 방해받을 수 있는 유일한 요소는 자신의 건강 상태이다.
또 하나를 더하자면 주위 인간관계 및 가족의 건강상태..? -> 정신 건강에 크게 영향을 끼칠 수 있는 요소이기 때문
그렇다면 신체적/정신적 건강이라고 할 수 있겠다.
건강 관리를 지금부터 잘 해두어야 겠다. 지금은 밤 새고 운동 안하고 그래도 어려서 쌩쌩하지만
나이가 좀 더 들면 확실히 몸이 힘들다고 하니까... 운동을 좀 해서 체력, 근력을 키워야겠다.
(헬스장 등록되어있는데 너무 바빠서 못가는중... 하... 일찍부터 좀 많이 해둘걸) 
그리고 사실 티스토리 블로그 테크닉이나 상세한 프로젝트/논문 설명 등등 공부 목적으로 개설한건데
그렇게 되지가 않네..
일단 그런거 쓸 시간에 뭐라도 하나 더 진전시키는게 나은 상황이라 더 그렇다. 너무 바빠!!
앞으로도 그런 내용은 안쓸거같은 느낌이..ㅋㅋ
당분간은 내 생각, 일상, 계획들을 조용히 써내려가고 다시 마음을 다잡는 용도로 써야겠다.  

 

+ 아 그리고 마침 충북인재양성재단 장학생으로 선발되었당.. 200만원 받았당. 직전 학기 학점이 좋았어서 다행이다.

이런게 있는 줄 알았으면 1학년때부터 신청해보는건데.. 4-2학기에 이런게 있는줄 알았다. 내가 나고 자란 충청북도... 고맙다...!!  

이 장학금은 그리스 학회 가는 여비로 유용히 사용할 예정이다. 시기가 딱 적절했던 것 같다. 

(22:27 추가)
오늘따라 왜 이렇게 서글픈지 모르겠다.
속상하고 울고싶은데 뭐때문인지 모르겠고 그냥 이래저래..
많은게 불안하고 스스로에게 실망스럽고 두렵고 외롭고 쓸쓸하고..
비가와서 싱숭생숭한가보다.
이런 이야기를 할 사람이, 할 공간이 여기 내 블로그밖에 없다는 것도 슬프다. 나를 알아줄 사람이 한 명만 있었으면 좋을텐데
심란한 마음을 털어놓았더니 토닥여줄 사람이 한명만 있으면 힘이 날텐데
속마음 터놓을 사람없이 혼자 세상을 살아가는건 너무 쓸쓸하다
예전엔 자취해서 좋았는데. 이제는 혼자있기가 싫다
혼자있고싶지않은데 같이있고싶은사람이없다

언젠가 친구로든 연인이든.. 마음을 공유할 수 있는 좋은 인연을 만날 수 있었으면 좋겠다
그나마 블로그에 혼자 속마음을 나누면서 쓸쓸함을 버티는거같다.
이상하게 속상하고 무섭고 두려운 오늘이다.

4학년 1학기는 유독 힘들었다.

팀 프로젝트도 많았고, 시험도 많았고, 과제도 많았고, 연구도 해야했다. 수업도 들어야하고 복습도 해야하고.. 거기에 각종 지원서 작성, 영어 면접 준비, 헬스장까지.. 숨을 돌릴 교양과목도 없이 6전공이었다.

여러 팀 프로젝트(무려 3개..)에 시간을 쏟는 동안에는 정작 내 연구를 못해서 불안했고, 과제를 하는 동안에는 수업 복습을 못해서 불안했고, 시험 공부를 하는 동안에는 팀 프로젝트나 과제를 더 해야해서 불안했고,.. 그냥 뭔갈 할 때 다른 뭔가도 해야한다는 마음이 동시에 있어서 계속 급박하고 조급한 마음으로 살았던 것 같다.

중간고사나 기말고사도 이상하게 한 교수님께선 이르게 시험보는걸 좋아하시고 다른 교수님께선 늦게 시험보시는걸 좋아하셔서, 거의 2-3주동안 시험기간으로 보냈다. 기말 시험이 모두 끝난 이후에도, 제출해야하는 과제나 제출물이 있어서 남들보다 종강이 1주정도 늦게 끝났다.

저번 학기는 교외 공모전을 동시에 하느라 바빴는데, 이번 학기는 교내 수업 외에 더 벌려놓은 일이 없는데도 너무 바빴다.  그러다보니 내가 선택과 집중을 할 수 있는 상황이 아니었다. 어쩔 수 없이 이 과한 일정을 한 학기 내내 끌고 갔다. 매일매일 간신히 그 날의 일정을 끝냈다. 일정을 끝내면 다음날 바로 또 빡센 일정을 끝내야만 했다. 이번 학기의 목표는 학점 잘 받기와 연구 열심히 하기였는데... 학점은 잘 받았으나 연구를 성실하게 했는지는 모르겠다.

4학년은 원래 다들 이렇게 바쁜건가 싶었다. 양해를 구하고 1달에 1-2번정도 갔던 헬스장에서, 피티쌤이 4학년이어도 나처럼 바쁜 사람은 처음본다고 하셨다. 그런가? 싶어 주위 친구들에게 물어보니 내가 유독 바쁜 삶을 살고 있더라. 수강신청의 실패와.. 복수 전공을 늦게 시작한 여파가 있던 것 같다. 한 학기에 수업을 그렇게 들었으면 안됐는데, 졸업을 맞추기 위해 어쩔 수 없었다. 또 같은 수업의 팀 프로젝트더라도 우리 팀이 더 시간, 노력이 많이가는 주제를 선정한 탓도 있던 것 같다.

 

한 학기 내내, 마음속으로는 지금의 나에겐 연구를 하는 것이 가장 중요하다는 생각을 하곤 했지만.. 사실 학점을 높이는데 집중하고 싶은 마음이 더 컸었던 것 같다.  미국에 가기 전까지는 다른것들 보다도 연구에 더 집중하고 싶다. (...)

미국.. 미국에 간다는 내용도 tistory 에 적고 싶었는데. 너무 바쁘고 마음에 여유가 없어서 이번 학기는 게시글을 많이 올리지도 못했네.. 일단 그간 밀린 얘기들은 방학 동안에 차근차근 해보자.

 

지금은 종강(6.26) 이후 2주정도 지난 시기이다. 

그리고 나는 지금 번아웃 상태같다. 아무것도 하기가 싫다. 그냥 쉬고만 싶다...

사실 그동안 열심히 산 만큼, 종강 직후 1-2주동안은 아무것도 안하고 마냥 놀려고 계획을 했었는데

연구쪽에 신경을 많이 못쓴게 사실이라, 진행해야 하는게 너무 많아서.., 온전히 내 일이라 내가 하지 않으면 진전되지 않아서 마음 놓고 쉴 수 없었다. 연구실 팀원과 다함께 제주도에 놀러갔다가 복귀하고, 이후부터 계속 뭔가를 또 했다.

제대로 딥하게 쉬질 않아서 그런지 정말 아무것도 하기가 싫다.. 그렇다고 아무것도 안하는 것도 아니고 뭔갈 집중해서 제대로 하는 것도 아닌 애매한 상태가 되어버렸다. 

 

그나마 위안이 되는건 학점을 잘 받은것, 그리고 예전부터 신경쓰였던 과목을 성공적으로 재수강 한 것이다.

그리고 교내, 교외의 SW 활동( 논문, 학회발표, 공모전수상, 데이터톤수상, 특허등록, 등등의 활동) 이 우수한 학생을 장학생으로 선발하여 장학금을 지급하는 SW 마일리지에 금상 장학생으로 선정되었다! 200만원 받았당.  뿌듯

 

아무튼, 이번 학기 덕분에 총 평균 평점이 많이 높아졌다. 1학년때부터 열심히 살 걸 후회된다! 아니, 열심히 공부할걸 후회된다!

나도 열심히만 했으면 높은 학점을 받아왔을텐데.. 졸업을 앞둔 지금은 평균 평점이 높은 친구들이 너무너무 부럽다.

그래서 더더욱 2023-1학기에 다닐 4-2학기는 더욱 열심히 해서 높은 학점을 받고 싶다. 마침 이번학기 학점이 좋은 덕분에 다음학기에 3학점을 추가로 받을 수 있어서, 21학점을 들을 수 있다. 평점 평균을 더 높일 기회인 것이다. 

그런데 문제는, 마지막 학기인만큼 졸업 논문을 써야하고, 연구를 마무리해야한다는 점이다. 심지어 나는 복수전공이라 졸업 논문을 2개 써야한다. 그리고 늦게 복수전공을 시작한만큼, 전공 졸업학점을 채우기 위해 이 때에도 최소 5전공을 들어야 한다. 

......

전공 과목 공부하고, 과제하고 하느라 이번 학기처럼 매우 바쁠 게 예상되는데, 연구를 해야한다. 그것도 2개나.. 

그나마 졸업 논문 중 하나는 팀 프로젝트 예정이어서 다행인가? 그리고 다른 하나는 이번학기에 하던걸 이어하는 것이니 괜찮을지도...

학점을 높이기 위해 최대한 많은 수업을 들을지, 연구에 더 시간을 투자하기위해 최대한 적은 수업을 들을지가 고민이다.

근데 아마 후자를 선택해야겠지.. 교수님께서도 그렇게 조언해주실 것이다. 이 문제는 나중에 생각하기로 하자.

 

아무튼, 힘들었던 4-1학기가 끝났다.

여름 방학동안에는 연구를 진전시키고, 토플 공부 및 시험을 보고 영어 회화 공부를 할 예정이다. (헬스장도 자주 다녀야 하는데....... 자꾸 우선순위에서 밀려난다)

2022-2학기에는 휴학을 하고 미국에 간다. 거기서 만날 학우들과 열심히 프로젝트 해서 논문까지 쓰고싶고, 영어 회화도 많이 늘리고 싶고, 여행도 많이 다니고 싶다. 지금껏 휴학 없이 스트레이트로 달려왔으니 이제는 좀 쉬엄쉬엄 오로지 프로젝트에만 집중하며 휴식하고 싶다. 이 타이밍에 미국 지원 프로그램에 선정되어서 정말 다행이라고 생각한다.

앞으로는 티스토리도 다시 자주 써야지. 다른 분들께 도움이 될 정보들도 하나 둘 올려보도록 하겠다.

 

고생했다 다예야! 

앞으로도 응원할게

 

 

 

 

 

 

 

 

 

 

 

 

 

2022.02.05, 17:33 최종 수정


많은 시행착오, 오류수정 끝에 알파폴드2 실행에 성공했다!

T1050.fasta 파일의 구조 예측

https://github.com/deepmind/alphafold

실행하기 위한 코드 및 설명은 여기에서 확인할 수 있다.

 

GitHub - deepmind/alphafold: Open source code for AlphaFold.

Open source code for AlphaFold. Contribute to deepmind/alphafold development by creating an account on GitHub.

github.com

 

설치에 대한 얘기를 하기 전에, 미리 알아두면 좋을 AlphaFold2 에 대한 내용을 소개하려 한다.

ppt 열심히 만들었다.

결론적으로, ranked_0.pdb 를 확인하면 된다.

 

이제 설치에 대한 얘기를 해보자.

내 서버 환경은 다음과 같다.

  1. Ubuntu 18.04.01
  2. Conda 3.9.2
  3. Nvidia-driver-465
  4. CUDA 11.3
  5. cuDNN 8.2.1
  6. Pytorch 1.9.0

 

내가 겪은 오류는.. 

unable to create StreamExecutor for CUDA:0: failed initializing StreamExecutor for CUDA device ordinal 0: INTERNAL: faild call to ceDevicePrimaryCtxRetainL CUDA_ERROR_OUT_OF_MEMORY: out of memory; total memory reported: 2544170048
Attemping to fetch value instead of handling error INVALID_ARGUMENT: device CUDA:0 not supported by XLA service
Fatal Python error: Aborted

RuntimeError: jaxlib/cusolver_kernels.cc:44: operation cusolverDnCreate(&handle) failed: cuSolver internal error

PermissionError: [Errno 13] Permission denied: '/mnt/output/T1050/msas/uniref90_hits.sto'

이건 내가 기록해둔것만 나열한거고, 이것 말고도 오류가 정말 많았는데.. (+ jaxlib 버전 문제 등)

구글 서칭을 통해 누군가 해결했다는 방법을 내 dockerfile에 적용해도, 계속 오류가 수정되질 않았었다. 

dockerfile을 다른 버전으로 바꿔도 보고 수정도 해보고 했는데 계속 오류오류오류...ㅜㅜ

내가 CUDA 11.3 version을 쓰는 문제도 있던것같고, Alphafold2 소스코드 자체에서 발생한 문제도 있던 것 같다. 

그러다 1주? 쯤 전에 AlphaFold가 새롭게 release 되어서(v2.1.2 ), 다시 git clone 하여 약간의 오류를 수정해주니 정상 작동했다! 아마 앞으로 알파폴드를 실행해보려는 분들은 오류 걱정 없이 편하게 실행할 수 있을거라 생각된다. 난 2주를 고생했다! 니가이기나 내가이기나 해보자는 집념으로 2주동안 계속 오류 수정했다..

 

참고) 기본적으로 docker에 대한 지식, 리눅스 명령어에 대한 지식이 있는 사람만 시도하라.

약간의 팁을 주자면..

1. 만약 build시 오류가 났거나, dockerfile을 바꿔서 build 를 다시 해야할때 등등의 상황에서는, 미리 세팅된 image 및 container 를 지워주고 다시 build 하도록 하자. 

docker image ls

docker rmi -f <image name>

docker image prune

docker container prune

2. 데이터셋 다운로드 받는데는 약 2~3일정도 걸린다. 걱정하지말고 냅두면 잘 다운로드 될 것이다.

3. 전체 프로세스를 간략히 하면, 다음의 명령어가 필요하다. (참고만 하라)

git clone http://github.com/deepmind/alphafold.git

 

GitHub - deepmind/alphafold: Open source code for AlphaFold.

Open source code for AlphaFold. Contribute to deepmind/alphafold development by creating an account on GitHub.

github.com

 

cd alphafold

docker build -f docker/Dockerfile -t alphafold .

pip3 install -r docker/requirements.txt

python3 docker/run_docker.py --fasta_paths=/data/AlphaFold2/input/T1050.fasta --max_template_date=2020-05-14 --data_dir=/data/AlphaFold2 --output_dir=/data/AlphaFold2/output

 

path, dir 같은 경로는 본인의 input파일, output파일, data를 저장한 파일의 경로를 설정하면 된다.

상세한 설명은 Alphafold github에 가면 확인할 수 있으니 생략하겠다.

 

내가 사용한 dockerfile을 첨부해두겠다.

Dockerfile
0.00MB

 

예시로 사용한 T1050.fasta 파일을 포함한 .fasta 파일은 아래의 링크에서 얻을 수 있다. 

https://www.predictioncenter.org/casp14/targetlist.cgi

 

Targets - CASP14

Target List csv   Targets expire on the specified date at noon (12:00) local time in California (GMT - 7 hours). Green color - active target; Yellow color - target expires within 48 hours; Orange color - target expires within 24 hours; Red color - target

www.predictioncenter.org

fasta 파일은 특정 분자(아미노산)의 서열을 나타내는데 사용되는 파일형식이다. 형태는 아래와 같다.

>T1050 A7LXT1, Bacteroides Ovatus, 779 residues|
MASQSYLFKHLEVSDGLSNNSVNTIYKDRDGFMWFGTTTGLNRYDGYTFKIYQHAENEPGSLPDNYITDIVEMPDGRFWINTARGYVLFDKERDYFITDVTGFMKNLESWGVPEQVFVDREGNTWLSVAGEGCYRYKEGGKRLFFSYTEHSLPEYGVTQMAECSDGILLIYNTGLLVCLDRATLAIKWQSDEIKKYIPGGKTIELSLFVDRDNCIWAYSLMGIWAYDCGTKSWRTDLTGIWSSRPDVIIHAVAQDIEGRIWVGKDYDGIDVLEKETGKVTSLVAHDDNGRSLPHNTIYDLYADRDGVMWVGTYKKGVSYYSESIFKFNMYEWGDITCIEQADEDRLWLGTNDHGILLWNRSTGKAEPFWRDAEGQLPNPVVSMLKSKDGKLWVGTFNGGLYCMNGSQVRSYKEGTGNALASNNVWALVEDDKGRIWIASLGGGLQCLEPLSGTFETYTSNNSALLENNVTSLCWVDDNTLFFGTASQGVGTMDMRTREIKKIQGQSDSMKLSNDAVNHVYKDSRGLVWIATREGLNVYDTRRHMFLDLFPVVEAKGNFIAAITEDQERNMWVSTSRKVIRVTVASDGKGSYLFDSRAYNSEDGLQNCDFNQRSIKTLHNGIIAIGGLYGVNIFAPDHIRYNKMLPNVMFTGLSLFDEAVKVGQSYGGRVLIEKELNDVENVEFDYKQNIFSVSFASDNYNLPEKTQYMYKLEGFNNDWLTLPVGVHNVTFTNLAPGKYVLRVKAINSDGYVGIKEATLGIVVNPPFKLAAALQHHHHHH
 

이걸 input 디렉토리에 넣어놓으면 된다. (나는 리눅스 cat 명령어를 이용해서 저장했다.)

 

예측이 종료되면 다음과 같은 output 파일이 생성된다. (구조)

<target_name>/

features.pkl

ranked_{0,1,2,3,4}.pdb

ranking_debug.json

relaxed_model_{1,2,3,4,5}.pdb

result_model_{1,2,3,4,5}.pkl

timings.json

unrelaxed_model_{1,2,3,4,5}.pdb

msas/

bfd_uniclust_hits.a3m

mgnify_hits.sto

uniref90_hits.sto

 

결론만 말하자면, 최종 모델 중 신뢰도가 가장 높은 구조는 ranked_0.pdb 파일로, 3D 구조를 확인하고자 할때 이것을 확인하면 된다. 

출력된 pdb 파일은 아래의 링크를 이용해 3D 시각화하였다.

https://www.ncbi.nlm.nih.gov/Structure/icn3d/full.html

 

iCn3D: Web-based 3D Structure Viewer

 

www.ncbi.nlm.nih.gov

 

시간을 많이 들였는데 결국엔 정상 작동해서 다행이다.

매번 논문을 읽기만 하지, 실제로 논문에서 제시된 내용, 소스코드를 들여다보면서 실행해본적은 없었는데 좋은 경험이 되었던 것 같다. 앞으로 다른 논문을 보더라도 실제로 연구결과를 재현해 볼 수 있겠다는 자신감도 생겼다.

 그러나 알파폴드는 아직 들여다볼게 많다는 것,,, 이제 시작점이라는 것,,, 그게 조금 두려우면서 기쁘다.

 

경희대학교(서울캠퍼스, 국제캠퍼스) 에서 주관한 캡스톤 디자인 경진대회에서 최우수상을 수상하였습니다.!!

캡스톤디자인 수업은 모든 학생이 3, 4학년때 참여하는 수업으로, 그동안 배운 내용을 토대로 창의-종합적인 프로젝트를 설계 및 수행하여 유의미한 결과를 도출해 발표하는 프로젝트입니다. 이 프로젝트를 더 발전시켜 후에 졸업논문으로 쓰기도 하구요. 

이번 대회는 이번 학기(2021-2)에 캡스톤디자인 수업을 들은 모든 학과, 모든 분야 학생들의 종합설계 프로젝트를 평가 및 시상하는 대회였습니다. 그래서그런지 입법제안, 식품제조와 같은 주제부터 스마트팩토리 기계, 안내형로봇 등의 주제까지 정말 가지각색의 프로젝트가 본선에 올라왔더라구요. 

저는 데이터분석캡스톤디자인 수업을 들었고, 팀 프로젝트로서 뇌파를 이용해 사용자의 감정을 잘 드러내주는 음악 작곡 알고리즘 구현 및 UI개발을 주제로 하였었습니다. (저번 포스팅에도 간략히 언급했었죠.)

심사는 총 예선, 본선으로 이루어졌으며 예선으로는 서류심사, 본선으로는 발표를 통해 평가했고,

본선에 올라온 팀은 저희를 포함해 총 7팀이었습니다.

 

본선에 진출한 수상작은 아래의 링크에서 확인할 수 있습니다.

https://wzine.kr/khu_capstone/

 

경희대학교 링크플러스사업단 캡스톤디자인경진대회 수상작

경희대학교 링크플러스사업단 캡스톤디자인경진대회 수상작

wzine.kr

역대 수상작들을 저렇게 포스터 형태로 전시해두더라구요.

아직은 2021 하반기 수상작이 업로드되지 않았지만, 빠른 시일내로 업로드 될 것으로 보입니다. 

업로드 되면 다른 팀들의 주제도 간략하게 여기에 적어봐야겠어요!

정말 와.. 아이디어 좋다.. 할만한 주제들이 많았거든요.

다른 팀들의 발표를 들으며 저런 주제도 있구나, 이런 아이디어 좋다, 이걸 이렇게 접근할 수 있구나 등 좋은 정보를 많이 얻어서 더 좋았던 경진대회 였던것같습니다.

 

그럼 이만..,, 다음에 또 다른 프로젝트로 좋은 소식을 들고올게요. (희망사항)

2022.02.05. 17:22분 최종 수정됨


오늘 소개할 논문은 Nature의 Highly accurate protein structure prediction with AlphaFold 입니다.

논문은 아래의 링크에서 확인할 수 있습니다.

https://www.nature.com/articles/s41586-021-03819-2

 

Highly accurate protein structure prediction with AlphaFold - Nature

AlphaFold predicts protein structures with an accuracy competitive with experimental structures in the majority of cases using a novel deep learning architecture.

www.nature.com

 

AlphaFold2는 단백질 접힘 구조를 예측하는 모델로, CASP14 대회에서 압도적으로 높은 정확도를 보이며 단백질 3차원 접힘 문제 해결의 종지부를 찍었다고도 평가받고 있는, 핫한 모델입니다.

Alphafold2가 실제로 예측한 단백질 구조

 

논문을 읽었지만.. 학부 3학년인 제 수준에서는 이해하기 어려운 내용들이 있어 전반적인 흐름만 살펴보았습니다.

먼저 전반적인 AlphaFold2의 간략한 파이프라인은 다음과 같습니다. 

논문에서는 17만개의 Dataset(즉, 현재 구조가 명확히 밝혀진 단백질의 수만큼이죠)에 대해 훈련 및 예측을 진행하였습니다.

논문에서 정확도를 높이기 위해 사용한 방법은 크게 3가지가 있습니다. (ppt에서 확인)

다시말해 생물정보학에 물리적, 기하학적 접근방식을 기반으로 PDB data에서 학습하는 구성요소를 구축하였으며

다양한 접근을 통해 제한된 데이터에서 더 효율적으로 학습가능하며 데이터의 복잡성과 다양성에 대처할 수 있는 네트워크를 형성했습니다.

 

Framework

.fasta 입력파일이 들어오면, 모델은 각각 두 가지 경로로 나눠 서칭을 진행합니다. 

1-1 경로로는 데이터베이스에서 유사한 '단백질 서열'을 조회하고, 식별합니다. (이 정보를 MSA라고 부르겠습니다.)

1-2 경로로는 데이터베이스에서 유사한 '단백질 구조(템플릿)'을 조회하고 식별합니다.

다음으로, 각 정보에서 MSA와 템플릿을 추출해 변환기를 통해 전달합니다. 이 Transformer를 통해 MSA와 템플릿은 서로 정보를 주고받으며 표현을 계선합니다. 이는 지정된 주기수까지 반복되는 48개의 블록으로 구성되어있습니다.

 

이후 Evoformer를 통해 개선된 정보가 출력되면, Structure module에 넣어 3차원 구조를 예측하고, 모델을 생성합니다.

 

논문에서 중요하게 봐야할 부분중에 하나가 이 Transformer 부분인데요. 연구원이 제안한 Evoformer는 MSA와 템플릿에서 모든 정보를 짜내서, 현재의 구조적 가설을 활용해 다중 서열 정렬의 평가를 개선하고(새로운 인사이트 창출) 이후 새로운 구조적 가설 등으로 이루어지게합니다. 

예를 들어서, 만약 ABCD 라는 서열을 갖고, 일자 구조인 단백질이 있다고 해봅시다. 아미노산은 +, - 성질에 따라 접히기도 하고 펼쳐지기도 하는데요. 예를들어 A가 +, B와 C가 각각 +, -, D가 + 를 갖고있다면 B와 C는 서로 끌어당겨 접히게 됩니다. 이렇게 되면 서열만으로 예상하였을때는 서로 + 라 접힐 일이 없는 A와 D가, 접혀야하는 상황이 오게됩니다. 이렇게되면 둘 중 하나가 -로 바뀌며 돌연변이가 될 수 있습니다. 알파폴드는 이렇게 아미노산의 서열과 구조간의 정보를 서로 교환하며, 매 iteration마다 발전적인 예측을 하게 됩니다. (아미노산은 돌연변이가 종종 발생하며, 이 돌연변이를 예측하는게 단백질 접힘예측의 중요한 부분이라고 볼 수 있습니다. 해당 내용은 원리를 간략하게만 작성한것입니다.)

 

본 글에서 제가 설명한 부분 외에도 정확도를 높이기 위한 다양한 접근이 시도되었고, 이를 간략히 정리하면 위와 같습니다. 

 

알파폴드는 오픈소스로, 누구나 다운로드받아 실행해볼 수 있습니다.

저도 알파폴드를 설치해 실행해보려하는데.. 왜인지 설치 및 실행 과정에 오류를 많이 겪고 있습니다. -_-

도커가 환경 다 구축해주는데 왜 환경때문에 문제가 발생하는건지?! 는 도커파일에 문제가 있었고...

아무튼 정말 다양하게 오류가 발생하고 있습니다. 이거때문에 글 쓸 의욕이안나는듯

계속 수정하는중이라 곧 성공적으로 돌려볼 수 있을것같은데, 그렇게되면 또 간략하게 글 쓰겠습니다.

--> 설치 및 정상 작동 완료!! 아래의 포스팅으로 가주세요!

https://checherry.tistory.com/117

 

알파폴드2 실행하기 : 단백질 접힘 예측모델 / AlphaFold2 run

많은 시행착오, 오류수정 끝에 알파폴드2 실행에 성공했다! https://github.com/deepmind/alphafold 실행하기 위한 코드 및 설명은 여기에서 확인할 수 있다. GitHub - deepmind/alphafold: Open source code for..

checherry.tistory.com

 

 

 

오늘 읽어본 논문은

An Uncertainty-Aware Transfer Learning-Based Framework for COVID-19 Diagnosis 입니다.

논문은 아래의 링크에서 읽을 수 있습니다.

https://ieeexplore.ieee.org/document/9353390 

 

An Uncertainty-Aware Transfer Learning-Based Framework for COVID-19 Diagnosis

The early and reliable detection of COVID-19 infected patients is essential to prevent and limit its outbreak. The PCR tests for COVID-19 detection are not available in many countries, and also, there are genuine concerns about their reliability and perfor

ieeexplore.ieee.org

 

이 논문에서는 Covid-19 감염 조기 진단을 위한 의료 이미지의 Transfer learning 프레임워크를 제시합니다. 

 

Transfer learning?

Transfer learning은 자신이 풀고자 하는 task의 데이터가 충분히 많지 않을때 사용할 수 있는 방법으로, 현재의 task와 비슷하면서 다른, 방대한 데이터로 미리 학습되어있는 모델을 이용하는 방법입니다. 간단히 말해 사전 학습 모델의 일부를 이용하면서, 끝부분만 우리가 해결하고자 하는 task의 문제로 바꾸어 원하는 결과를 얻는 방법이라 할 수 있습니다.

사전 학습 모델을 이용함으로써 새로운 모델을 만들때 학습 속도도 더 빨라지게 되고, 가지고있는 데이터 양에 비해 예측의 정확도도 향상될것을 기대할 수 있습니다. 특히 의료 데이터는 다른 도메인의 데이터보다 얻기 힘들기 때문에(비용 등의 문제) 전이학습은 유용하고 중요한 학습 방법이라 할 수 있습니다.

 

논문 요약

X-ray 및 CT 이미지 dataset에 대하여, 사전학습 모델로 널리 사용되는 VGG16, ResNet50, DenseNet121, InceptionResNetV2 및 CNN 을 적용해 이미지에서 feature를 추출하고, 이를 기계 학습 및 통계 모델링 기술을 통해 Classification하여 Covid-19의 음성/양성을 판별하는 연구입니다. 또한 모델을 통한 분류 결과의 불확실성을 함께 계산하여 보고합니다. 결론적으로는 두 데이터셋 모두 linearSVM 모델과 neural network model에서 accuracy, sensitivity, specificity, ROC curve, AUC 값이 높은 성능을 보였다고 하며, X-ray에 비해 CT 이미지의 예측 불확실성 추정치가 높았다고 합니다.

논문에서 사용된 사전학습모델 (VGG16, ResNet50, DenseNet121, InceptionResNetV2) 의 데이터는 1.4 백만개의 이미지, 1000개의 label 로 구성된 방대한 데이터셋인 ImageNet 입니다.

연구진은 ImageNet data를 학습한 모델의 Image detection task와 Covid-19 classification 사이에 Fundamental similarities 가 있다고 생각하여 연구를 진행했습니다.

 

Dataset

연구에서 이용한 데이터셋은 흉부 X-ray 이미지(2D)와, CT 이미지(2D)입니다.

사전 학습 모델이 2D data를 input으로 받는 모델이다보니, 3D 이미지인 여러장의 CT data에서, 한 장의 CTdata만 이용해 2D로 학습시킨것으로 보입니다.

 

Chest X-Ray Data set
코로나 양성 이미지 25장
코로나 음성 이미지 75장
non-Covid : consist of other unhealthy conditions
non-Covid does not necessarily infer a healthy lower respiratory system

CT Data set
코로나 양성 이미지 349장
코로나 음성 이미지 397장
carry more information compared to chest X-rays

 

 

위에도 적어놓았다시피, 흉부 X-ray dataset의 '음성' label 이미지는 단순히 건강한 사람(무질병자)의 이미지가 아니라, Covid가 아닌 다른 질병에 걸린 환자의 dataset도 포함합니다. 즉, 질병자와 무질병자를 나누는 모델이 아니라 코로나 환자와 비코로나 환자를 나누는 모델을 만들고자 하였다는 것입니다. 

 

Framework

연구에서는 CNN을 이용한 사전학습모델로 상기 4가지 모델을 사용했고, Classifier로는 다음의 8가지 모델을 사용했습니다. 최종 모델의 앞부분은 사전학습모델의 Convolution layer를 그대로 가져와서 가중치를 사용하였고, 뒷부분은 Covid classification을 위한 classifier를 사용하였습니다. 

 

Visualization

Performance Metrics (Percentage)

VGGnet 을 이용해 각 data에서 25088개의 feature를 추출하고, 이를 PCA를 통해 2개의 feature로 줄인 그림입니다. (설명력은 논문에 기재되지 않은것으로 보임.) 각 포인트는 환자 한 명의 데이터입니다. 즉, 환자 한 명의 데이터를 2차원 평면에 시각화한 그림입니다. 흉부 X-ray data는 음성과 양성 데이터의 구분이 꽤 뚜렷한 반면에 CT data는 그러한 경계가 없다는 것을 확인할 수 있습니다.

 

Visualize the effectiveness of extracted features

gradient-weighted class activation mapping 그림입니다. Backpropagating 한 결과를 HeatMap 으로 그려 X-ray 사진에 HeatMap을 덧씌운 그림입니다. 모델이 데이터를 분류할때 어느 부분이 중요하게 영향을 끼쳤는지 확인이 가능합니다.

 

 

Evaluation

연구진은 100 회에 걸쳐 Train 및 Evaluation 을 진행하였고, Accuracy, Sensitivity, Specificity, AUC value 값을 평가 지표로서 활용하였습니다. 아래의 표는 모든 예측(100회) 의 평가지표의 평균을 낸 값입니다. 

pre-trained 모델로 ResNet50 + 분류기 모델로 Linear SVM을 사용한 조합이 각 데이터셋에서 높은 성과를 보인것을 확인할 수 있습니다.

ROC-AUC score

각 모델별 ROC curve 입니다. linear SVM 과 neural Net 이 가장 높은 AUC 값을 가지는것을 확인할 수 있습니다. 

또한 classifier의 성능은 pre-trained CNN 모델에 따라 다양하게 나타나고 있습니다.

연구진은 추가적으로, 각 모델별로 추출되는 feature 및 파라미터의 갯수 또한 비교하였는데요. 그래프의 원은 pre-trained CNN 모델이며, 원의 크기는 Accuracy를 의미합니다. VGG16 모델은 적은 파라미터 및 feature 갯수에 비해 높은 정확도, AUC 값을 가지고 있고(Most informative& Discriminative), InceptionResNetV2는 높은 파라미터 및 feature 갯수에 비해 낮은 정확도, AUC 값을 가지고 있습니다. (Least informative & Discriminative features)

이러한 자료를 통해, 큰 네트워크를 가진 모델이더라도 반드시 more informative and discriminative features 를 추출하는것은 아님을 알 수 있습니다.

 

predictive Uncertainty Estimation

Uncertainty 는 2가지가 있습니다.

Aleatoric Uncertainty는, 어쩔 수 없이 발생하는 오류로 학습을 통해 줄일 수 없고,

Epistemic Uncertainty는 모델이 모르기때문에 발생하는 오류로 학습을 통해 줄일 수 있습니다.

연구진은 추가적으로, 모델의 Epistemic Uncertainty를 줄이기 위해 이를 추정해 나타내고자 하였습니다.

그리고 이를 위해 Ensemble model을 만들었습니다.

Ensemble 모델은 1개의 Hidden layer 를 가진 20개의 독립적인 neural network로 구성되어있고, hidden layer의 neuron 는 랜덤하게 50~400 개 중 선택되었습니다.

불확실성은 다음과 같이 계산되었습니다. (p 는 softmax 함수와 비슷해 보이네요..)

 

이를 다시 PCA를 통해 dimension을 줄여 2차원으로 만들었고, 시각화하여 나타내었습니다.

밝은색(녹색)일수록 높은 확실성, 어두운색(남색)일수록 높은 불확실성을 나타내고,

불확실성이 높다는 것은 앙상블 모델 내부의 classifier들의 분류가 서로 완전히 일치하지 않다는 것을 의미합니다.

X-ray의 Epistemic Uncertainty 는 상대적으로 낮고, CT 이미지는 꽤 높은것을 확인할 수 있습니다.

 

앞서 말씀드렸듯 CT 이미지는 원래 흉부를 관통하여 찍는 3D 이미지인데요, 이를 모두 사용하지않고 임의로 한 장을 선택해 분류를 진행하였으니 x-ray에 비해 불확실성이 높게 나타난 것이 아닌가 싶습니다. (가령 Covid를 분류하기 위한 설명력 높은 feature를 추출할 수 있는 위치에서 찍은 이미지가 아니었다던가..) 

 

Further Exploration

마지막으로, 연구진은 이 모델을 개선하기 위해 fine-tuning, hybrid models(feature 간의 통합 등), ensembles, more comprehensive Uncertainty measure 도출 등 다양한 방법을 제시하였습니다.

 

 

끝!

오늘 소개할 논문은 ELSEVIER_Expert Systems with Applications 의 

Classification of Individual’s discrete emotions reflected in facial micro-expressions using electroencephalogram and facial electromyogram 이다. 

 

논문은 아래의 링크에서 확인할 수 있다. 

https://www.sciencedirect.com/science/article/pii/S0957417421014330

 

Classification of Individual’s discrete emotions reflected in facial microexpressions using electroencephalogram and facial el

Facial microexpressions are defined as brief, subtle, and involuntary movements of facial muscles reflecting genuine emotions that a person tries to c…

www.sciencedirect.com

 

논문 요약

이 연구는 뇌전도(EEG)와 안면전자기록(fEMG)을 이용한, 얼굴 미세표현에서의 감정 분류를 목표로 하는 연구이다. 이때, 얼굴 미세표현이란 사람이 자신의 감정을 숨기고 억제하려할때 나타나는 표정이다. 즉, 사람이 감추려하는 감정을 얼굴에 드러나는 미세표현으로부터 알아내고자 하는 연구라고 할 수 있다.

사용한 데이터셋

16명의 피험자에 대해 EEG(10개의 채널)와 fEMG(4개의 전극) dataset을 사용했다. EEG는 뇌의 전기적 활동을 나타내는 신호이고, fEMG는 얼굴 근육 섬유의 수축과 이완을 감지할 수 있는 신호이다. Target값은 피험자의 감정으로, 정답 label은 얼굴의 표정 영상 데이터를 이용한 감정분류값이다. 또한, 정답 label의 보조적 수단으로서 피험자에게 Arousal과 Valence 수치를 설문조사하여, 얼굴 표정영상데이터의 감정분류값과 Arousal/Valence값을 비교해 검증 및 조정하였다. (특정 범위 이하이면 제거하는 방식으로)

연구에서 정답값으로 사용된 '얼굴 표정영상데이터의 감정분류값'은 다음과 같이 결정된다. (기존에 있던 프로그램 이용)

먼저 사용자의 얼굴에 랜드마크를 찍으면, 랜드마크 사이의 거리, 모양 등에 따라 사용자의 감정이 다각도로 분류된다. 

랜드마크
다각도로 분석된 피험자의 감정

한 예로 분석된 피험자의 감정상태를 보면, 피험자 1은 Happy한 감정임을 알 수 있다. 

 

Framework

연구는 16명의 피험자에 대해 진행되었고, 특정 감정을 느끼게 하는 영상을 보여주며 EEG 및 fEMG signal 을 수집하였다. 최종적으로는 피험자의 감정을 Sad, Happy, Anger, Disgust, Surprise, Fear 총 6가지로 분류한다.

그림과 같이 EEG 및 fEMG signal 에서 Filtering -> Segmentation -> Feature extraction 의 순서로 전처리 및 feature를 추출한다.

Band stop 필터는 신호의 주파수를 통과시키지만, 특정 범위의 주파수를 매우 낮은 수준으로 낮추는 필터이고,

Band pass 필터는 특정 주파수만을 통과시키는 필터이다.

연구에선 58-62 Hz의 주파수를 낮추고, EEG에서 1-50Hz만 통과, fEMG에서 20-450 Hz만 통과 시켰다. 이는 감정분석에 주로 많이 사용되는 주파수 대역대이다.

이후 window마다 높은 비율로 overlap하여 signal을 segmentation한다. (중복되게 자르는 비율이 높다)

마지막으로 EEG에서 Average spectral power, fEMG에서 Root mean square을 추출한다. 이 두 개의 feature를 통해 감정 분류를 하는 것이다.

결국  feature EEG에서 10 x EEGfeature 개 (10 채널xEEG의ASP), fEMG에서 4xfEMGfeature(4 채널xfEMG )개가 된다.

이 과정을 더 자세히 나타내면 다음과 같다.

연구에서는 전체 signal을 이용해 감정분석을 하지 않고,

Frame별로 얼굴 표정(정답값)을 분류해, 감정이 감지되는 Frame의 signal만을 이용해 해당 프레임의 감정을 분류한다. 

모델은 SVM 을 사용했다.

 

연구 결과

결과는 F1 score를 통해 검증하였다. 

* F1 score는 다음과 같이 Precision 과 recall의 조화평균으로 계산된다. 

 

 

적은 수의 feature를 사용하였음에도 average f1 score = 0.928 로 성능이 매우 좋은것을 확인할 수 있다. 

 

개인적인 의견

전체 signal을 이용해 감정을 분류하지않고, 특정 감정이 드러나는 Frame 에 대한 signal 만 이용해 분석한것이 정확도를 높인 설계라고 생각한다.

개인적으로는 프로그램이 분류한 감정 상태를 정답값으로 두어도 괜찮은가? 하는 의문이 들었다. 이것은 사실 온전한 정답이라기 보다 예측값에 가깝기 때문이다. 연구진도 이 부분을 우려하여, 이를 보완하기 위한 방법으로 설문조사를 통해 수집한 Arousal 과 Valence 수치를 이용한것으로 생각된다. 

오늘 읽어본 논문은 Computer science, Human-computer interaction 의

Investigating EEG-Based Functional Connectivity Patterns  for Multimodal Emotion Recognition 이다.

논문은 아래의 링크에서 확인할 수 있다. 

 

[2004.01973] Investigating EEG-Based Functional Connectivity Patterns for Multimodal Emotion Recognition (arxiv.org)

 

Investigating EEG-Based Functional Connectivity Patterns for Multimodal Emotion Recognition

Compared with the rich studies on the motor brain-computer interface (BCI), the recently emerging affective BCI presents distinct challenges since the brain functional connectivity networks involving emotion are not well investigated. Previous studies on e

arxiv.org

 

논문의 특징 요소

 Affective Brain-Computer Interface
 EEG
 Eye movement
 Brain Functional Connectivity Network
 Multimodal Emotion Recognition

 

Connectivity?

말그대로 각 요소간의 연관성/연결성을 나타내는 지표이다.

논문에서는 functional connectivity 가 사용되었으나, functional connectivity 뿐 아니라 관련한 다양한 Connectivity 기법이 있다. 

 Structural Connectivity
 Biophysical connections between neurons or neural elements
 Functional Connectivity <- 논문에서 사용한 것
 Statistical relations between anatomically unconnected cerebral regions
 Effective Connectivity
 Directional causal effects from one neural element to another

 

논문 요약

EEG의 각 채널간의 Functional connectivity metrics를 계산하여 feature를 도출하고, 

Eyetracking data에 대한 feature를 도출해 두 feature를 fusion 하여,

이에 대해 SVM 모델을 통해 다중 분류(5가지)하여 감정을 분석하고자 하는 연구이다.

 

사용한 데이터셋

피험자에게 특정 감정을 느끼게 하는 동영상을 보여주면서,

64개 채널에서 EEG 신호를 수집하고, 동시에 Eyetracking data를 수집한 것이다. (SEED, DEAP 등)

 

Framework

 

1. 먼저 EEG signal data를 주파수 대역대(알파, 델타, 베타, 세타, 감마)로 나누어 4초 간격으로 잘라서, 64x64 의 Dynamic Brain connectivity Metrics 를 형성한다. (connectivity Metrics 란 네트워크 Metrics로, 각 채널을 vertex로 두고 신호와 신호의 상관(연결)관계를 나타내는 Metrics이다.) 이렇게 하면 결과적으로 5 종류의 64x64 Metrics 여러 장을 얻게 된다.

아래의 그림을 참고하자.

2. 1번에서 구한 Metrics 에 대해 Critical subnetwork selection 의 과정을 거친다. 이 과정은 총 3가지를 거치게 되는데, Averaging, Thresholding, Merging 이다.

Averaging 에서는 각 emotion state 별, 그리고 주파수 별로 connectivity metrics의 평균을 낸다. 이렇게 하면 5가지 emotion 에 대해, 그리고 한 emotion당 5가지 주파수에 대해 Metrics 가 할당되게 된다.

이후 Thresholding 을 통해 신호 중에서도 강력하게 나타나는 신호만을 selection 하게되고, 

Merging 과정을 통해 주파수대역대로 나눠진 분류를 기준으로, merging 하게 된다. 

최종적으로는 각 주파수 대역대로 나뉘어진 64x64의 Metrics 총 5개가 추출되게 된다.

 

3. 이렇게 추출된 metrics를 Critical connectivity matrices 라고 부른다.

논문에서는 해당 matrics에서 feature를 추출한다. 아래의 그림과 같이 EEG(matrics)에서 3종류, Eyetracking data에서 5종류를 추출한다. 연구진은 이렇게 추출한 EEG, Eyetracking feature를 fusion 하여 최종 feature를 재구성하는데, 이 과정에서 사용한 model을 DCCA라고 부른다.

EEG (64x64 – 주파수별로 5) feature FROM metrics

 Strength
 Clustering coefficient
 Eigenvector centrality

Eyetracking feature
 Pupil diameter
 Fixation duration
 Blink duration
 Saccade
 Event Statistics

DCCA model(fusion 하는 과정)을 상세하게 나타내면 다음과 같다.

모든 EEG feature와, 모든 Eyetracking feature를 fully-connected 모델에 input으로 넣고, non-linear 형태로 각각 연산한다. (relu 같은 non-linear activation function 을 썼다는 의미라고 생각된다.) 최종적으로 나온 output에 대해, EEG와 Eyetracking data간의 피어슨 상관관계를 계산하고, CCA 를 통해 둘의 상관관계를 최대한 높일 수 있는 방향으로 파라미터를 업데이트 한다. 그리고 최종 결과를 Classifier(SVM)에 넣어 Emotion을 5가지로 classification 한다. 

이때 여러가지 feature, 여러 데이터의 상관관계를 한꺼번에 어떻게 구하는것인지 의문이 들 수 있는데 

 multi-배리얼-statistic- ?? 이라고 하는 기법이 있다고 한다. CCA 뿐 아니라 PLA 등의 기법 또한 있다고 한다.

또, 상관관계를 최대화 하는 방향으로의 파라미터 업데이트를 위한 cost function은 correlation 의 negative 값을 이용해 SVD 계산을 하여 구했다고 한다.

 

최종 분류 결과

연구진은 다양한 접근으로 정확도를 비교하였다.

EEG 만 이용해 감정분석, Eyetracking data만 이용해 감정분석, 둘 모두를 합쳐 감정분석(DCCA 모델 제외), 연구에서 제안한 DCCA 모델을 이용해 감정 분석.

이 네 가지의 정확도를 비교한 결과는 다음과 같다.

64채널을 모두 이용하고, 연구진인 제안한 DCCA 모델을 이용한 결과가 가장 높은 정확도를 보이는 것을 확인할 수 있다. 

 

 

이번에 읽은 논문은 ELSEVIER _ Medical Image Analysis 에 기고된

Accurate brain age prediction with lightweight deep neural networks 논문입니다.

https://www.sciencedirect.com/science/article/pii/S1361841520302358

 

Accurate brain age prediction with lightweight deep neural networks

Deep learning has huge potential for accurate disease prediction with neuroimaging data, but the prediction performance is often limited by training-d…

www.sciencedirect.com

 연구의 목표는 크게 2가지 입니다. 

1. T1-weighted-MRI 3D 이미지를 이용한 뇌연령 예측

2. Brain-age delta 의 확인

Brrain-age delta는 예측된 뇌의 나이와 실제 나이의 차이를 의미하는데요,

Brain-age delta 는 알츠하이머 등의 병의 진단에 있어 효과적인 바이오마커입니다.

 

연구에서 사용한 데이터셋은 UK-Biobank, PAC2019 의 2가지 이며,

두 데이터셋 모두 T1-weighted-structural MRI 3D brain image 를 제공합니다.

 

아래의 이미지 T1-weighted MRI 의 예시입니다.

MRI는 수집 및 처리하는 방식에 따라 다양한 종류로 나뉘는데, 그중에서도 T1-weighted MRI image는, T1 강조기법을 사용한 MRI 종류힙니다.

T1 강조영상은 짧은 TR과 짧은 TE를 이용한 스핀에코 기법으로, 조직의 T1 이완시간의 차이를 신호차이로 반영하는 기법입니다. 짧은 TR 을 사용함으로써 조직 간 종축 자기화의 회복정도가 크게 차이나게 되는데, 이를 신호 차이로 반영하는 기법입니다.

 

모델로는 Simple Fully Convolutional Network, SFCN 을 사용합니다. 

즉, VGGnet을 base로 하여 3D CNN 을 이용해 모델링을 합니다. (기존의 2D VGGnet을 3D VGGnet 으로 변경함)

논문에서는 항상 3x3 필터를 이용해 convolution 을 하여, 보다 파라미터를 적게생성하고 층을 늘리는 lightweight 전략을 세웠습니다. 

또한, 뇌연령 예측임에도 회귀 분석을 한 것이 아니라, 각 데이터셋별 1년, 2년 단위로 target값을 끊어서 총 40개의 구간(Class)으로 연령대를 만들어서, 다중분류를 하였습니다. (softmax 이용)

 

연구진은 단일 모델뿐 아니라, 다양한 접근 방식을 비교해가며 다양한 모델을 만들었는데요.

한가지 예로, 3D image 인 MRI를 여러 기법으로 전처리하여, 한 MRI 이미지에서 a linear image, non linear image, GM image, WM image 의 네가지 타입의 이미지를 추출하고, 각 이미지들을 복합적으로 이용해 뇌연령을 예측합니다.

아래의 매트랩에서 각 4가지 타입의 이미지데이터에 대해, 모델을 5개씩 만들어 예측값과 실젯값의 correlation 결과를 분석하였음을 확인할 수 있습니다. 

이때 5개의 모델은 모두 같은 아키텍처를 이용해 하이퍼파라미터만 다르게하여 학습한 모델로, (파라미터만 다르게)

각각의 모델에서 예측한 결과값의 mean으로 앙상블 모델을 만든것을 확인할 수 있습니다.

맨 아래 ensb 이라고 표시된 그림이 앙상블 했을때의 correlation 결과값인데요. 모든 데이터셋에서 0.9 이상의 결과를 얻은 것을 확인할 수 있었습니다.

이 결과값은 모델의 예측값과 실제값의 Stability 가 보장이 된다는 것을 확인할 수 있는 결과이며,

동시에 다양한 데이터를 이용해 정확도를 높이기 위함으로, 논문에서는 이 모델을 Semi-multimodal model 이라고 부릅니다.

뇌연령 예측 연구에서, 대개 나이가 상대적으로 어린 피험자는 나이가 더 높게 나오고, 나이가 상대적으로 많은 피험자는 나이가 더 낮게 예측되는 경향이 있는데,

연구진들은 이러한 Bias를 Correction 해주었습니다. 그림1 -> 그림2 -> 그림3 으로 갈수록 correction이 된 것을 확인할 수 있습니다.

 

결과적으로 선행 모델보다 높은 성능을 보이며, 적은 데이터셋을 학습시킬때도 성능이 좋게 나올 수 있도록 모델을 비교하며 시도하였습니다. 또한, 최종 모델은 뇌연령뿐아니라 성별예측에서도 높은 정확도를 보였습니다.

 

이상!! 

2021년도 동계 저널클럽 활동을 하며, 발표한 자료입니다.

 

제가 오늘 함께 공유하고자 하는 논문은 NAACL 저널에 기고된

Multilingual Language Models Predict Human Reading Behavior 입니다.

https://aclanthology.org/2021.naacl-main.10/

 

Multilingual Language Models Predict Human Reading Behavior

Nora Hollenstein, Federico Pirovano, Ce Zhang, Lena Jäger, Lisa Beinborn. Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2021.

aclanthology.org

 

, 인간의 읽기 행동을 예측하는 다국어 언어 모델의 개발이 논문의 주제인 것인데요.

여기서 예측하고자하는 인간의 읽기 행동이란, 자연 상태에서 피험자가 문장을 읽을 때, 문장의 어떤 단어, 어느 위치에 피험자의 시선이 오래 머무는지를 의미합니다.

정리하면, 이 연구는 문장 data, 해당 문장을 읽을때의 Eyetracking data를 이용하여 문장이 주어졌을 때 피험자의 시선이 어느곳에 주요하게 머물지를 연구하는 것이라고 볼 수 있겠습니다.

제가 이 논문을 선정한 이유는, “자연 읽기 상태 뇌파의 자연어로의 해독이라는 지금의 제 연구 주제에 접목시킨다면 더 좋은 성과를 얻을 수 있을 것이라 판단하였기 때문이고, 동시에 여러분께 이 논문에서 사용된 들어는 봤으나 다소 생소한 Transformer-based 모델에 대해 소개해드릴 수 있기 때문입니다.

오늘의 발표는 다음과 같은 순으로 진행되겠습니다.

 

언어를 처리할 때 인간은 선택적으로 문장의 가장 관련성이 높은 요소에 더 오래 주의를 기울이게 되죠. 이렇듯 문장에서 단어의 상대적 중요성을 평가하는 능력은, 인간 언어 이해에 있어 핵심적인 요소라고 할 수 있습니다. 그러나 여태껏 인공지능 모델에서 이러한 상대적 중요성이 어떤 방식으로 인코딩-디코딩 되는지는 알려진 바가 없습니다. 그래서 연구진은, 인공지능 모델에서 어떻게 인간 언어의 상대적 중요성을 파악하는가를 알고자 하였고,

그 방법으로, 피험자가 글을 읽을 당시의 시선의 움직임을 추적하고, 해당 위치에 고정되어있는 기간과 같은 Feature를 측정 및 예측함으로써 파악할 수 있다고 생각했습니다.

다음의 그림은 해당 문장이 주어졌을 때, 피험자의 시선 추적 데이터를 시각화하여 나타낸 것입니다.

원은 눈이 고정되어 있던 위치, 그리고 원 아래 숫자는 시선이 고정되어 있던 시간을 의미합니다.

이 문장은 Laurance를 소개하는 글에서 가져온 문장인데요. 이전에 나왔던 이름인 Laurance 보다, 새롭게 등장한 단어인 Mary가 피험자에게 상대적으로 더 중요했기 때문에, 두 번, 그리고 더 오래 고정된 것을 확인할 수 있습니다.

연구진은 이러한 시선 추적 데이터를 통해 우리는 눈의 움직임 패턴을 예측할 수 있게되고, 이것은 동시에 모델의 인지적 타당성을 이해하는데 한걸음 더 다가갈 수 있게 해준다고 주장합니다.

본 연구에서는 다양한 종류의 데이터세트를 사용합니다.

영어 (Zuco), 독일어, 네덜란드어, 러시아어 등 다양한 언어로 작성된 문장과 시선처리 데이터에 대하여, 인간의 행동 패턴을 예측하는 큰 모델과 작은 모델이 있습니다.

작은 모델은 단일 언어를 학습하고 표현하는 모델이며, 큰 모델은 다국어 transformer 모델로, 모든 언어를 학습하고 표현하여, 작은 모델 보다 보편적인 언어 이해를 목표로 하는 모델입니다.

연구진들은 사람이 문장을 읽을 때, 특정 현상에 대한 시선 추적 패턴은 언어에 상관없이 일관되기 때문에, 단일 모델보다도 다국어 모델이 피험자의 행동 패턴을 예측하는데 있어 더 좋은 성능을 보일 것이라 가정하였습니다. 그리고 연구진은, 이 가설을 영어, 독일어, 네덜란드어, 러시아어 의 총 4가지 언어의 6개 데이터세트에 대해 테스트 하였습니다

1은 모델 훈련시 사용된 각 데이터셋에 대한 기술통계 입니다. 던디, 지코, 주고, 지코, 포텍, RSC 의 총 6가지 데이터가 사용되었고, 각 데이터셋의 평균 문장 길이, 평균 단어 길이, 총 토큰 개수 등을 확인할 수 있습니다. 플래쉬 점수는 각 언어가 얼마나 읽기 쉬운가를 나타낸 지표인데요, 0 에서 100사이의 점수로 나타내어지며 점수가 높을수록 읽기가 쉬움을 나타냅니다.

데이터셋 각각에 대해 간략히 설명하자면,

1)    던디 데이터셋은 20개의 신문기사가 포함된 데이터셋으로, 한 번에 다섯 줄의 화면이 영어 원어민 독자에게 제시되었습니다.

2)    지코 데이터셋은 영어 소설이 포함된 데이터셋으로, 단락 별로 화면에 표시되었습니다.

3)    주코 데이터셋은 영화리뷰 및 위키피디아 기사의 전체 문장에 대한 시선 추적 데이터가 포함됩니다.

4)    지코 데이터셋에는 네덜란드 독자의 시선추적데이터가 포함되어있고

5)    포텍 데이터셋에는 대학 수준의 생물학 및 물리학 교과서의 짧은 구절이 포함되어 있습니다. 전체 구절이 여러줄로 표시되었고, 독일어 원어민이 읽습니다.

6)    RSC 데이터셋은 러시아어로, 국립 코퍼스에서 추출한 문장이 포함되어 있습니다. 성인에게 한번에 하나씩 전체 문장이 화면에 표시되었습니다.

시선 고정이란 피험자의 시선이 한 위치에 유지되는 시간입니다. 고정은 각 단어에 속하는 화면의 영역 주변 경계를 구분하여 단어에 맵핑됩니다. 단어는 한번이상 고정될 수 있으며, 각 토큰(문장)에 대해 초기 구문부터 후속되는 구분까지의 전체 읽기 프로세스를 인코딩하는 다음 8가지 시선추적기능을 예측합니다. (다음의 각 단어별 특성 추출)

(1)   고정 수해당 단어에 고정된 횟수, (모든 피험자에 대한 평균값)

(2)   평균 고정 지속시간 모든 고정의 평균 고정 지속시간

(3)   고정 비율 해당 단어에 고정된 피험자의 수/전체 피험자 수

(4)   첫번째 고정 기간 해당 단어에 첫번째로 고정된 기간 . 모든 피험자에 대한 평균

(5)   첫번째 통과 기간 주제가 고정될때부터 통과 이후 모든 고정의 합. (????)

(6)   총 읽기 시간 모든 고정기간의 합, ?(?)

(7)   재고정 횟수 첫번째 고정 후에 고정 된 횟수

(8)   다시 읽은 비울 – 1회이상 고정된 피험자 수 / 전체 피험자 수

 

이렇게 추출된 데이터는 각각 값의 범위가 다르므로, 0에서 100 사이로 균일하게 맞추어 손실을 계산합니다.

BERT, XLM의 두 모델에서 시선 추적을 예측하는 기능을 비교합니다.

왼쪽 그림은 ZUCO 영어 데이터셋에 대해 추출한 단어수준 feature , (3) 고정 비율 에 대해 예측한 값입니다. (이후 0~100 으로 scaling) , He is of three quarters Irish andone quarterFrenchdescent. 문장에서, 각 단어에 고정된 피험자수/ 전체 피험자수를 나타낸 값인것이죠.

분홍색 선이 정답값이고, 주황색선은 XLM을 이용한 예측값, 파란색선은 BERT-모델을 이용한 예측값입니다.

오른쪽 그림은 RSC 러시아어 데이터셋에 대한 고정 수, 즉 해당 단어에 고정된 횟수에 대해 나타낸 값입니다. 마찬가지로 붉은 선이 실제값, 주황선이 XLM 모델을 이용한 예측값, 푸른색이 BERT 문장의 예측값입니다.

두 모델 모두 상당히 높은 정확도를 보이는 것을 확인할 수 있습니다.

각 언어 및 모델별 정확도를 비교한 최종 결과는 다음과 같습니다. 괄호 안에있는 것은 표준편차입니다.

pre-trained transformer 모델이 4가지 언어의 읽기 행동 패턴을 예측하는데 전반적으로 90% 이상의 높은 정확도를 보이는 것을 확인할 수 있었습니다. 또한 XLM 모델의 결과는 평균적으로 약간 더 낮지만, 훨씬 더 높은 표준편차를 나타냅니다

상대적으로 작은 데이터세트인 RSC 같은경우, 다국어 XLM 모델이 단일언어 모델보다 성능이 뛰어난 것을 확인할 수 있습니다.

또한 XLM 모델의 성능은 아주 작은 비율의 시선추적데이터로도 안정적으로 유지되지만, BERT 모델의 성능은 데이터의 20% 미만을 미세 조정할 때 급격히 떨어지는 한계가 있었습니다. 음영 처리된 영역은 표준편차를 나타내며, 점선은 파인튜닝없이 사전훈련된 BERT-MULTI 모델의 결과입니다.

지금까지 다국어 모델보다 특정 언어에만 훈련된 단일 언어 모델이 더 성능이 좋은 경우가 많지만, 다국어 모델은 적은 양의 데이터로 미세 조정될 때 언어별 모델보다 이점을 보여주었으며, 사용된 transformer 모델이 인간의 처리 메커니즘과 유사한 방식으로 언어의 상대적 중요성을 인코딩 한다는 것을 확인할 수 있었습니다.


저는 이번 저널리뷰를 통해 연구원이 연구를 어떻게 진행하는지, 최근에는 어떠한 연구주제가 있는지 등을 아는 것도 중요하지만, 사용된 모델이 무엇이고 어떻게 동작하는 것인지 간략하게나마 이해하는 것도 매우 중요한 요소라고 생각합니다. 그래서 따로 여기서 사용된 Transformer 모델이 대체 무엇인지, BERT XLM 이 무엇인지, 살펴보는 시간을 갖도록 하겠습니다.

관련 내용은 다음의 문서로 가주세요!

https://checherry.tistory.com/111

 

자연어 처리 분야 최신기술! Transformer model, BERT, XLM 모델이란?

Transformer 는 Attention all you is need 논문에서 제안된 모델 구조로, RNN 의 long-term-dependency 의 한계점을 극복하기위해 제안된 아키텍처입니다. (은닉 상태를 통해 과거 정보를 저장할때, 문장..

checherry.tistory.com

 

+ Recent posts