딥러닝 논문은 읽기가 어려워 보일 수 있습니다, 특히 기계학습이나 딥러닝에 대한
이론적 배경이 부족한 경우에는 더욱 그렇습니다. 일부 논문은 전문 용어와
공식, 마법 같은 결과로 너무 복잡해서 제목을 보는 것조차
10년 치의 배경 지식이 부족한 것 같은 기분이 들 수 있습니다.
이 영상에서는 대부분의 딥러닝 논문을 쉽게 읽는 방법을 보여드리겠습니다,
새로운 딥러닝 세부 분야를 시작하더라도 말이죠. 목표에 따라 논문을 읽는 두 가지 방법이 있습니다.
첫 번째 방법은 깊이 있게는 아니지만 대략적으로
무엇이 수행되었는지 이해하는 것입니다. 보통 연구 결과를 사용하거나
이 결과를 사용한 다른 논문을 이해하기 위해서입니다.
이 읽기 방법은 논문이 맞다고 믿는 것에 크게 의존합니다. 그리 어렵지 않습니다.
논문의 초록과 결론을 읽으면 대략적인 내용을 파악할 수 있습니다.
이는 React가 대략 무엇을 하는지 아는 것과 비슷한데,
구현 방식을 이해하는 것보다는 사용하는 데 더 관심이 있는 것과 같습니다.
Shadow DOM과 같은 것 말이죠. 두 번째 논문 읽기 방법은 사람들이
헷갈려하는 부분입니다. 목표는 연구 프로젝트를 깊이 이해하여
결과를 재현할 수 있을 정도로 이해하는 것입니다. 이 방식에서는 신뢰가 거의 없고 실제로
논문의 방법을 이해해야 합니다. 오늘 다룰 논문 읽기 방법이
바로 이것입니다. 시작하기 전에, 딥러닝 연구 전반에 대해
경고를 하나 하겠습니다. 이는 매우 경험적인
작성된 맥락을 이해해야 합니다. 대부분의 내용은
약간 잘못되었거나, 적어도 그것이 작동한 이유에 대한 설명이
잘못되었습니다. 이 점을 명심하세요. 현재의 지식으로 보면
매우 오래된 딥러닝 논문에서 이를 더 쉽게
알아볼 수 있습니다. 제가 사용하는 전체 방법은 이렇습니다.
7단계가 있습니다. 여러 번 읽기를 포함하는데,
이는 모든 연구 논문에서 매우 정상적입니다. 논문은 일반적으로
선형적이지 않고, 많은 상호의존성을 가진 구조입니다.
논문을 읽는 첫 단계는 자신을 제대로 정향할 수 있을 만큼의
맥락 정보를 갖는 것입니다. 새로운 분야에 들어가는 것은
매우 혼란스럽습니다. 맥락이 없으면,
길을 잃게 됩니다. 해당 분야에 경험이 많은 연구자들은
이미 맥락을 알고 있어서 논문을 쉽게 이해할 수 있습니다.
논문을 읽기 전에 모든 맥락을 빠르게 흡수하는 제가 선호하는 기술은 다음과 같습니다.
논문의 주요 발견을 요약한 2-3개의 블로그 포스트를 찾습니다. 잘 쓰여있거나 정확할 필요는 없습니다.
단지 용어와 그런 것들에 대해 방향을 잡는 데 도움이 될 뿐입니다.
그 후 논문에 대한 5-10개의 다양한 비디오를 찾습니다.
다시 주요 발견에 대해, 중요한 점에 대한 다양한 의견을 찾으세요.
여기서는 길이를 다양하게 하는 것이 좋습니다.
6분에서 60분 사이가 좋습니다. 처음 접하는 자료는
혼란스러울 것입니다. 하지만 몇 개를 보
논문의 실제 초점과 강점이 어디에 있는지 알려주는 패턴을 발견하기 시작할 것입니다.
이는 또한 해당 분야의 논문을 더 많이 읽을수록 더 빠르게 맥락을 파악할 수 있게 된다는 의미입니다.
이제 맥락을 파악했으니, 처음으로 논문을 가볍게 읽어볼 수 있습니다.
먼저 처음부터 끝까지 선형적으로 읽으면서 별도의 종이에
이해하지 못하는 모든 요소를 메모합니다.
이해하는 부분은 괜찮습니다. 보통 그냥 계속 읽어 나갑니다.
첫 번째 읽기에서는 이해하지 못하는 것들을 깊이 연구하지 않고 단순히 메모만 합니다.
보통 논문에서 이해하기 어렵게 만드는 다섯 가지 요소가 있는데,
이는 전체 연구를 이해하기 위해 어느 정도 분류하고 설명해야 하는 미지의 영역입니다.
첫 번째 카테고리는 논문의 중요 요소지만 다른 부분에서 설명되지 않고
이해된 것으로 간주되는 부분입니다.
두 번째 유형은 논문에서 설명되지만 완전히 이해하려면 약간의 노력이 필요한 중요 주제입니다.
세 번째 유형은 저자가 완전히 이해하지 못해서
대충 넘어간 요소들입니다.
이런 유형의 미지는 보통 답을 얻기가 매우 어렵고, 논문 출판 후 몇 년 동안
비판의 주요 대상이 됩니다.
네 번째 유형은 놀랍게도 저자가 잘못 이해한 부분입니다.
이런 일은 실제로 일어나지만, 그렇다고 해서 논문이 쓸모없다는 뜻은 아닙니다.
때로는 그래도 잘 작동하는 경우도 있습니다.
다섯 번째 유형은 출판 전 심사위원들이 추가를 요구했
종이와는 전혀 관련이 없습니다. 이것들은 보통 종이에서 튀어나옵니다.
모든 미지의 것들을 메모하고 나면 준비가 된 것입니다.
빈 틈을 채우기 시작할 수 있습니다. 이해하지 못한 것들을 이 다섯 가지 범주로
분류해 보세요. 지금은 외부 미지의 것들만 다루세요.
이해하지 못한 것들을 연구하고 더 나은 이해를 가지고
논문으로 돌아오세요. 여기서 너무 깊이 빠지지 마세요. 특정 방법이라면
논문이 활용하는 방법을 이용하세요. 논문을 읽는 첫 번째 방법은
직관을 표면적으로 이해하는 것입니다. 아니면 더 좋은 방법으로,
필요한 기술적 정보가 담긴 블로그를 읽어보세요. 이제
두 번째 읽기가 시작됩니다. 전체 목적은
내부 미지의 것들을 최소화하는 것입니다. 그 읽기에서 저는
논문의 설정을 이해하기 위해 초록과 서론부터 시작합니다.
논문의 동기를 이해하려고 노력하세요. 왜냐하면
그것이 방법들이 왜 그런 식인지 이해하는 데 도움이 될 것이기 때문입니다. 그 다음
논문 끝의 토론과 결론 부분으로 건너뛰어
이 실험의 종착점을 봅니다. 저자가 연구에서 얻은 것을
깊이 이해하는 것이 중요합니다. 일반적으로 결론은
시작 부분의 동기를 연결된 방식으로 따릅니다. 논문이 쓰이지 않았기 때문에,
서론을 먼저 쓰고 6개월 후에 결론에 도달한 것이 아닙니다.
모든 것이 재귀적인 방식으로 함께 작성되었습니다.
마지막으로, 각 그림을 꺼내어
그래프와 단위, 이런 모든 것들이 강조되고 있습니다.
이 시점에서 저는 전체 연구와 깊은 연결감을 느낍니다.
서론과 결론을 기준점으로 삼아 그림에 나타난 결과를
일종의 논리적 타임라인에 맞춰 이해하려고 노력했습니다.
뭔가 연결되지 않는 느낌이 든다면, 그건 특정 방법이나 결과 외에
제가 이해하지 못한 다른 무언가가 있다는 힌트일 수 있습니다.
두 번째 읽기를 마무리하는 방법에는 두 가지가 있습니다.
기술적 세부사항을 천천히 읽으면서 공식을 포함한 각 단계를
개념적으로 이해하는 것이 첫 번째 방법입니다. 또는
제공된 경우 논문의 코드베이스를 먼저 열어
각 섹션을 매핑하는 것이 두 번째 방법입니다. 저는 두 번째 방법을 선호합니다.
소프트웨어 엔지니어로서 이것이 마법이 아니라는 자신감을 줄 수 있기 때문입니다.
결국, 이는 결과를 생성하기 위해 작성되고 실행된 코드입니다.
코드베이스를 잘 살펴보고 어디에 무엇이 있는지 편안해질 때까지,
그리고 코드의 이름과 논문의 이름을 일부 교차 참조할 때까지 확인하세요.
단, 연구 코드는 보통 매우 지저분하고 표준화된 구조가 없다는 점을 유의하세요.
이 점을 명심하세요. 코드 확인이 끝나면 방법론과
결과 섹션을 자세히 살펴볼 준비가 된 것입니다. 천천히 주의 깊게 읽으며
논문의 방법론을 단계별로 이해하세요.
딥러닝 실험에는 거의 항상 나타나는 반복적인 요소들이 있습니다.
이 구조를 이해하면 어디를
방법론 섹션을 탐색하는 방법. 먼저, 딥러닝 모델에 입력되는 데이터가 있습니다.
데이터는 모델 아키텍처 선택을 결정하는 특정 구조를 가집니다.
특정 분야를 깊이 파고들면, 같은 종류의 데이터셋이 반복해서 사용되는 것을 보게 됩니다.
그 다음은 모델 자체의 아키텍처입니다. 여기에는 사용된 레이어, 레이어 간 연결 등이 포함됩니다.
아키텍처에는 처음에는 이해하기 어려운 다양한 하위 요소들이 있을 수 있으며, 이는 괜찮습니다.
그 후에는 사용된 경사 하강법 최적화 기법과 훈련 방식이 있습니다.
아키텍처에는 처음에 이해하기 어려운 다양한 하위 요소들이 있을 수 있으며, 이는 괜찮습니다.
그 다음은 사용된 경사 하강법 최적화 기법과 훈련 방식입니다.
여기에는 보통 많은 경험적 세부사항들이 숨겨져 있어서,
훈련에서 그 이유가 100% 명확하지 않더라도 괜찮습니다.
마지막으로, 원시 데이터에서 결과가 생성되기까지의 파이프라인이 있습니다.
때로는 논문이 앙상블 방법과 같이 여러 아키텍처를 특정 방식으로 결합하기도 합니다.
어떤 연구에서든 핵심을 이해하는 데 필요한 변경사항은 보통 몇 가지뿐입니다.
논문을 더 많이 읽다 보면 이를 쉽게 발견하기 시작할 것입니다.
방법론의 각 단계를 분석하고 논리적 흐름을 이해하려 노력하세요.
이상하거나 놀라운 점이 있다면, 저자가 그렇게 한 이유를
코드나 다른 자료에서 확인해보세요.
마지막으로, 결과 섹션을 천천히 살펴보고 서론과 결론 사이의
타임라
그 읽기 과정에서 여전히 논문 내용을 이해하지 못하거나
저자가 지식 부족으로 완전히 설명하지 않았거나
저자가 완전히 틀렸거나,
또는 심사자가 불필요한 정보를 추가하라고 요청해서
어색하게 느껴질 수 있습니다. 어떤 경우든 세 번째
읽기 후에는 필요하다면 재현성 실험을 할 수 있을 정도로
논문을 이해해야 합니다. 영상이 도움되셨길 바랍니다. 마음에 드셨다면
좋아요를 눌러주시고 질문이 있으시면 댓글을 남겨주세요.
도와드리겠습니다. 모두 좋은 한 주 보내세요. 다음 영상에서
뵙겠습니다.