自然言語処理の効率的な勉強方法 – 最短で深く理解するために

学習

「自然言語処理を勉強したいけど、何から勉強して良いかわからない。」
「おすすめされている本を読んだけど、難しすぎて読むのをやめてしまった。」
「基礎からしっかりと理解したいけど、基礎的な勉強に時間を使い過ぎたくない」

上記のような方は結構多いのではないでしょうか?

私も3~4年前から自然言語処理の業務に関わっていますが、どのように勉強して良いかわからず、最低限の知識を習得するのに結構時間がかかってしまったと思っています。

そこで、そのような経験も踏まえて、私が思う自然言語処理の効率的な勉強方法を紹介したいと思います。

今回ご説明する方法はデータサイエンティストとして仕事をする上での勉強方法になりますので、概要をざっくり知っておけば良いという方が対象ではなく、業務で実際に自然言語処理を使ってモデルを構築する学生・社会人自然言語処理を使った分析を行う会社に転職したい方などが対象です。
また、数式はダメっと拒否反応が出る方は難しいかもしれません。

先に結論を言ってしまうと、効率的に学ぶ方法は、

“入門的な内容についてはMOOCなどのオンライン学習を積極的に使い、比較的新しい内容については原論文をしっかりと読む”

というものです。

もちろん本も非常に参考になりますが、入門者にとっては時間がかかったり、挫折してしまうことがありますので、復習用や知識の補完に参考として使う程度です。

Ian Goodfellowらの「深層学習」やビショップの「パターン認識と機械学習」などの本は非常に理解が深まる本ですが、難易度も高いですので(「パターン認識と機械学習」は難しい内容の割にはわかりやすいと思います)、MOOCなどで理解したあとに読んでも十分です。

ここでは、最低限必要な内容を短期間に習得する方法を解説します。

その後、自分で興味がある箇所をしっかりと論文や本を併用して理解していくと良いと思います。

実際私もかなり本を買っていて、興味がある部分を追加で学習したり、必要な部分は何度も見返しています。

この記事が皆さまの勉強の一助となれば幸いです。

1. ニューラルネットワークの基礎知識の習得

まず、ニューラルネットワークの基礎知識は最低限必要を学習します。

もちろん、決定木やランダム・フォレスト、サポート・ベクター・マシーンといった機械学習モデルの知識はもちろんあった方が良いですが、最短で理解するのであれば、まずニューラルネットワークの基礎を押さえることが重要です。

MOOCを使った学習

ここの勉強方法ついては、何と言ってもCourseraUdemyといったMOOCを使って理解するのが圧倒的に早いと思います

実際私も自然言語処理の業務を担当することになった際に、まずCouseraを使って学習し、さらにUdemyで必要知識を補完しました。

今もUdemyで興味がある講座を眺めています。

もちろん有料ですが、身銭を切るというこも大事です。

学びたい内容であれば絶対に購入した方が良いです。

Udemyであればセールなどもありますので、そのときに購入すれば非常に安くすみます。

Cousera

Courseraでは、deeplearning.aiの「Neural Network and Deep Learning」がおすすめです。

本当に素晴らしい内容です。

ディープラーニング、自然言語処理、画像処理といった技術に加えて、ハイパーパラメータのチューニング方法など実務で使える内容を一通り学ぶことができます。

説明もめちゃくちゃわかりやすいです。

月5000円程度だったと思いますが、それぐらいでここまで理解できるのであれば安いです。

Courseraの「Deep Learning」講座については、こちらの記事でも紹介していますのでご参考にしていただければと思います。

Udemy

Udemyについては、Couseraと違い日本語の講座もかなり充実しています。

自然言語処理以外の講座も多数あり、Pythonを基礎からしっかり勉強したい、AWS(Amazon Web Service)やGCP(Google Cloud Platform)について理解したい、という方などは一度試す価値を十分にあると思います。

Udemyについては、こちらから講座の検索、登録が可能です。

以下の講座で、自然言語処理の基礎が学べます。

ときどき割引セールが開催されていますので、数万円の講座が数千円で購入できます。

そのタイミングで購入するのがオススメです。

書籍を読んで学習

あとは、わかりやすい本がたくさんあるので、必要に応じて以下の本を参考にして学習していただければ良いと思います。

ただ、これらがなくてもMOOCで理解できると思いますので、どちらかと言うと見返すことができる参考資料というイメージです。

私が機械学習やDeep Learningの勉強を始めたときに使っていた本をご紹介します。

ゼロから作るDeep Learning
スクラッチですべて自分で作るので、細かいところまでよくわかります。再帰的ニューラルネットワークに関する記載はなく、一般的なニューラルネットワークと畳み込みニューラルネットワーク(CNN)が中心です。
私は最初はこの本で勉強しました。

Python 機械学習プログラミング
自然言語処理に限らず、機械学習全般について書かれているので、一冊持っていても良いと思います。
Scikit learnを使って実装できます。

MOOCを使った自然言語処理モデルの基礎知識の習得

ニューラルネットワークの基礎知識を習得できたら、今度は Bag-of-Wordsモデルや再帰的ニューラルネットワークといった自然言語処理モデルに入ります。

今ではBERTなど再帰的ニューラルネットワークを使わないTransormerベースのモデルが主流かもしれませんが、それでもやはり基礎的なモデルは理解しておいた方が良いと思います。

ここについてもMOOCが便利です。Courseraであればdeeplearning.aiの「Sequence Models」がおすすめです。

ただ、他のコースもすごく勉強になりますので、そのあとにでも受けることをオススメします。

本であれば以下の2冊が参考になります。

ゼロから作るDeep Learning② 自然言語処理編
ニューラルネットワークの続編です。こちらもほぼスクラッチで作っていくので、Keras APIなどを使ってしまうと勝手にできてしまうような細かいところまで、深く理解することができます。

つくりながら学ぶ! PyTorchによる発展ディープラーニング
この本の最後の方にTransformerとBERTについて、非常にわかりやすく解説されています。
現在の自然言語処理では、Transformerは最も重要な仕組みですので理解は必須です。
さらに最近では画像処理でも重要性が増してきています。
自然言語処理以外の分野についても非常にわかりやすく書かれていますし、PyTorchも学ぶことができるので、個人的には一番オススメの本です。
最初からMOOCと同時並行で進めて良いと思える一冊です。

原論文を読んで比較的新しいモデルを習得

ここが一番重要なポイントですが、新しいモデルについては、何と言っても原論文を読むことが重要だと思います

AttentionメカニズムはMOOCでもありますし、Transformer、BERTに関する本もいくつかありますが、やはり業務でモデルを構築するのであれば、この辺りの論文をしっかり読めることが重要になってきます。

ですので、以下の投稿などを参考にしていただき、重要な論文をピックアップし読んでいくと良いと思います。

ただし、BERTの理解のためにはTransformerの理解が必要だったり、過去の論文を理解している必要がありますので、順を追って読んでいく方が効率的だと思います。
例えば、“Attentionメカニズム”→“Transformer”→“BERT”という感じで、流れに沿って重要論文を読むと良いと思います。

また、読む際には何となくわかったという状態ではなく、何度も読んで人に説明できるぐらい理解した方が良いです
一度目はざっと読んでみて、よく理解できなくても全く問題ありません。
新しいことだらけなので、まったく理解できないかもしれませんが、何度も何度も読んでいるうちに、わかる部分が増え、新しく理解すべき情報が減少してくるため、難しいところも少しずつ理解できるようになってきます。
もちろん、インターネットの解説とかを参考にしながらとかで全然問題ありません。

また、実装を見た方が早い場合も多々あるので、TensorflowのチュートリアルやPyTorchですがこちらの本を使ってTransormerやBERTの理解の助けにするのも良いと思います。

さらに理解を深める

周辺論文を読む

この時点で最重要な論文は既に読んでいると思いますので、周辺の論文を読んでいくと良いと思います。
例えば、Transformerで使われている“Layer Normalization”というテクニックであったり、重要な考え方である“Denoising Autoencoder”という考え方などが挙げられます。

実装

この時点ではもうかなりの知識がついていると思います。
ですので、さらに知識を深めるために自分で実装していくのが良いでしょう。論文を読むのと比べて実装は時間がかかりますが、その分だけ理解は深まります。

その際に参考にするのはTensorflowのチュートリアルや、実際のモデルの実装でも良いと思います。

Tensorflowチュートリアル
Tensorflowの使い方についても学べるので、非常に勉強になります。

Word embeddings  |  Text  |  TensorFlow

本を使って知識を補完

あとは必要に応じて興味のある本を購入してみてください。

固有表現抽出や対話システム、GANなど、それぞれの分野に関する本が出ています。

今まで解説したやり方で基礎がしっかりと理解できていれば、これらの本は読むのにそれほど時間はかからないと思います。

もちろん、ビショップの「パターン認識と機械学習」やIan Goodfellowの「深層学習」など理論についてしっかりと書かれた本もあり、それらは簡単には理解できないかもしれません。

これらの本は基礎的な内容を理解したうえで、時間を掛けて読むと良いと思います。

個人的には、ビショップの「パターン認識と機械学習」は難しい内容をわかりやすく説明しているのでオススメです。

「深層学習」は訳がちょっとわかりにくいかもしれません(あくまで個人的な感想です)。

まとめ

以上が、私が思う最短の勉強方法です。最短と言っても結局は論文を読む必要があるので、それなりに時間はかかりますが、やはり深く理解するためにはある程度の時間を掛ける必要があると思います。

とは言っても、MOOCを使ったり、重要な論文を順を追って読んでいくことにより、初めから分厚い本を一生懸命読んでいくよりも遥かに早く実務に応用できるだけの知識を得ることができると思います

もちろん最近ではネットでもそれなりの情報がありますが、やはり体系的にまとまっているもので勉強すると非常に効率的だと思いますので、数千円の出費は惜しまない方が良いと思います。

身銭を切って頑張れって勉強すれば、それぐらいはすぐに取り返せます。

あとは、必要に応じて本や周辺論文で理解を深めていくのが良いと思います。

自然言語処理のオススメ本に関しては、こちらでまとめていますのでご参考まで。

そこまでくればあとは実践あるのみです。
実務ではうまくいかないことが多いので、知恵を振り絞って色々工夫を重ねていくしかありません!!




mm0824

システム開発会社や金融機関で統計や金融工学を使ったモデリング・分析業務を長く担当してきました。

現在はコンサルティング会社のデータ・サイエンティストとして機械学習、自然言語処理技術を使ったモデル構築・データ分析を担当しています。

皆様の業務や勉強のお役に立てれば嬉しいです。

mm0824をフォローする
学習 本・勉強方法 自然言語処理
mm0824をフォローする
楽しみながら理解する自然言語処理入門

コメント

タイトルとURLをコピーしました