「自然言語処理を勉強したいけど、何から勉強して良いかわからない。」
「おすすめされている本を読んだけど、難しすぎて読むのをやめてしまった。」
「基礎からしっかりと理解したいけど、基礎的な勉強に時間を使い過ぎたくない」
上記のような方は結構多いのではないでしょうか?
私も4~5年前から自然言語処理の業務に関わっていますが、どのように勉強して良いかわからず、最低限の知識を習得するのに結構時間がかかってしまったと思っています。
そこで、そのような経験も踏まえて、私が思う自然言語処理の効率的な勉強方法を紹介したいと思います。
今回ご説明する方法はデータサイエンティストとして仕事をする上での勉強方法になりますので、概要をざっくり知っておけば良いという方が対象ではなく、業務で実際に自然言語処理を使ってモデルを構築する学生・社会人や自然言語処理を使った分析を行う会社に転職したい方などが対象です。
また、数式はダメっと拒否反応が出る方は難しいかもしれません。
先に結論を言ってしまうと、効率的に学ぶ方法は、
“入門的な内容についてはMOOCなどのオンライン学習を積極的に使い、比較的新しい内容については原論文をしっかりと読む”
というものです。
もちろん本も非常に参考になりますが、入門者にとっては時間がかかったり、挫折してしまうことがありますので、復習用や知識の補完に参考として使います。
ですので、MOOCなどのオンライン学習をメインとして、本で復習、頭の整理をしていく、その後に論文を読んでいく、というのがいいのかなと思います。
自然言語処理などのAI分野は現在非常に発展が速いので、本やMOOCだと最新の内容が含まれていません。
ですので、やっぱり論文は読めた方がいいですし、論文を読むためには基礎を理解したあとに論文を何本か読まないと読めるようにはなりにくいと思います。
最終的に論文を読んで実装できるようになるために最低限必要な内容を短期間に習得する方法を解説します。
スクールに通うというのも、より短期間で学習でき、挫折もしにくいのでオススメですが、費用も高いので、この記事ではスクールについては扱っていません。
とはいってもスクールに通うメリットもたくさんあるので、スクールについて知りたい方はこちらの記事『社会人がAIを学ぶためのスクールをご紹介』をご参考にしていただければと思います。
最後に番外編として、費用のかからない「AIジョブカレPRO」というサービスを紹介しています。
この記事が皆さまの勉強の一助となれば幸いです。
目次
1. データサイエンス・機械学習の基礎知識の習得
まず、データサイエンス、機械学習に関するは最低限必要な内容を学習します。
ここの勉強方法ついては、何と言ってもCourseraやUdemyといったMOOCを利用するのをオススメします。
Udemyで学ぶ
Udemyはオンライン学習のプラットフォームです。
日本語の講座も充実しており、データサイエンス・機械学習の基礎を学ぶのに最適です。
例えば、以下のような講座では、データサイエンス・機械学習についてしっかりと学ぶことができます。
『データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜』
こちらの講座はボリュームがかなり多く、価格は2万4000円となっていますが、Udemyは割と頻繁に割引セールをやっており、そのときに購入すれば非常に安くすみます(私も割引セールで買うのが当たり前になっていますが、この講座だと24000円でも安いぐらいです)。
しかもUdemyは買い切りなので、月をまたぐとさらにお金がかかるといった心配はなく、自分のペースで進めることができます。
あと、購入したもののイメージと違うということであれば、条件によっては返金も可能です。
他にも、こちらの記事ではデータサイエンス・機械学習のためのUdemy講座をまとめているので、講座探しの参考にしていただければと思います。
他の講座Udemyについては、こちらから講座の見てみてください。
スタアカで学ぶ
他にもスタアカという人気の独自講座もあります。
イラストで説明されるので、特に入門者の方にとっては、とっつきやすいと思います。
月額980円というかなり価格を抑えたライトプランや、98000円で買い切りで、手厚いサポートを受けることができるプレミアムプランがあり、こちらの講座を受講することでデータサイエンティストに必要な基礎知識を学ぶことができます。
書籍を読んで復習
わかりやすい本がたくさんあるので、必要に応じて以下の本を参考にして学習していただければ良いと思います。
本がなくてもMOOCである程度理解できると思いますが、本は見返したり、必要な部分だけを確認しやすいので復習・理解定着用にあった方がよいと思います。
もちろん、追加の知識を得ることもできます。
私が機械学習やDeep Learningの勉強を始めたときに使っていた本をご紹介します。
ゼロから作るDeep Learning
スクラッチですべて自分で作るので、細かいところまでよくわかります。再帰的ニューラルネットワークに関する記載はなく、一般的なニューラルネットワークと畳み込みニューラルネットワーク(CNN)が中心です。
私は最初はこの本で勉強しました。
Python 機械学習プログラミング
自然言語処理に限らず、機械学習全般について書かれているので、一冊持っていても良いと思います。
MOOCを使った自然言語処理モデルの基礎知識の習得
データサイエンス・機械学習の基礎知識を習得できたら、本格的に Bag-of-Wordsモデルや再帰的ニューラルネットワークといった自然言語処理モデルに入ります。
今ではBERTなど再帰的ニューラルネットワークを使わないTransormerベースのモデルが主流かもしれませんが、それでもやはり基礎的なモデルは理解しておいた方が良いと思います。
ここについてもMOOCが便利です。
Couseraで学ぶ
Courseraでは、deeplearning.aiの「Sequence Models」がオススメです。
この講座は、deeplearning.aiの「Neural Network and Deep Learning」というコースの一部になります。
本当に素晴らしい内容なので皆さんにオススメしたい講座です。
ディープラーニング、自然言語処理、画像処理といった技術に加えて、ハイパーパラメータのチューニング方法など実務で使える内容を一通り学ぶことができます。
説明もめちゃくちゃわかりやすいです(すべて英語です。ただ最近では日本語字幕も整備されてきているかもしれません)。
月5000円程度だったと思いますが、それぐらいでここまで理解できるのであれば安いです。
Courseraの「Deep Learning」講座については、こちらの記事でも紹介していますのでご参考にしていただければと思います。
ただ、他のコースもすごく勉強になりますので、そのあとにでも受けることをオススメします。
Udmeyで学ぶ
以下の講座で、自然言語処理の基礎が学べます。
- 『今からでも基礎から学べるPythonによる自然言語処理(NLP):現役データサイエンティストが教える「日本語」文書分類』
- 『自然言語処理とチャットボット: AIによる文章生成と会話エンジン開発』
こちらの講座については『【Udemy講座紹介】『自然言語処理とチャットボット:AIによる文章生成と会話エンジン開発』のレビュー』でレビューをしていますのでご参考にどうぞ。
本で学ぶ
本であれば以下の2冊が参考になります。
ゼロから作るDeep Learning② 自然言語処理編
ニューラルネットワークの続編です。こちらもほぼスクラッチで作っていくので、Keras APIなどを使ってしまうと勝手にできてしまうような細かいところまで、深く理解することができます。
つくりながら学ぶ! PyTorchによる発展ディープラーニング
この本の最後の方にTransformerとBERTについて、非常にわかりやすく解説されています。
現在の自然言語処理では、Transformerは最も重要な仕組みですので理解は必須です。
さらに最近では画像処理でも重要性が増してきています。
自然言語処理以外の分野についても非常にわかりやすく書かれていますし、PyTorchも学ぶことができるので、個人的には一番オススメの本です。
最初からMOOCと同時並行で進めて良いと思える一冊です。
原論文を読んで比較的新しいモデルを習得
ここまで来たらかなり理解は進んでいると思います。
そして、本やMOOCでは触れられていないような新しいモデルについては、何と言っても原論文を読むことが重要だと思います。
AttentionメカニズムはMOOCでもありますし、Transformer、BERTに関する本もいくつかありますが、やはり業務でモデルを構築するのであれば、この辺りの論文をしっかり読めることが重要になってきます。
ですので、以下の投稿などを参考にしていただき、重要な論文をピックアップし読んでいくと良いと思います(こちらももはや最新の内容は載っていないので、皆さまはご自分で調べていただければと思います)。
個人的には、BERTの理解のためにはTransformerの理解が必要だったり、過去の論文を理解している必要がありますので、順を追って読んでいく方が効率的だと思います。
例えば、“Attentionメカニズム”→“Transformer”→“BERT”という感じで、流れに沿って重要論文を読むと良いと思います。
また、読む際には何となくわかったという状態ではなく、何度も読んで人に説明できるぐらい理解した方が良いです。
一度目はざっと読んでみて、よく理解できなくても全く問題ありません。
新しいことだらけなので、まったく理解できないかもしれませんが、何度も何度も読んでいるうちに、わかる部分が増え、新しく理解すべき情報が減少してくるため、難しいところも少しずつ理解できるようになってきます。
もちろん、インターネットの解説とかを参考にしながらとかで全然問題ありません。
また、実装を見た方が早い場合も多々あるので、TensorflowのチュートリアルやPyTorchの実装サンプルなどを見て、TransormerやBERTの理解の助けにするのも良いと思います。
さらに理解を深める
周辺論文を読む
この時点で最重要な論文は既に読んでいると思いますので、周辺の論文などを読んで理解を深めていくと良いと思います。
実装
この時点ではもうかなりの知識がついていると思います。
ですので、さらに知識を深めるために自分で実装していくのが良いでしょう。
論文を読むのと比べて実装は時間がかかりますが、その分だけ理解は深まります。
その際に参考にするのはTensorflowのチュートリアルや、実際のモデルの実装でも良いと思います。
Tensorflowチュートリアル
Tensorflowの使い方についても学べるので、非常に勉強になります。
https://www.tensorflow.org/tutorials/text/word_embeddings
本
先ほども紹介しましたが、TransformerやBERTを実装していくので非常に理解が深まります。
『つくりながら学ぶ! PyTorchによる発展ディープラーニング』
他にも以下の本はBERTに焦点を当てており、BERTの使い方など非常に実践的な内容が学べます。
「BERTによる自然言語処理入門 ―Transformersを使った実践プログラミング」
【番外編】AIジョブカレPRO
最後に「AIジョブカレPRO」というサービスを紹介します。
転職したい方向けではありますが、AIジョブカレPROは、まず転職し、その後無料でディープラーニングの講座が受講できるというサービスです。
私も働きながら修士課程・博士課程に通っていましたが、「実務で学ぶ・実務に活かす ⇔ 夜間・休日に一般論を学習・実務の研究」というのが最強の学び方・働き方だと思っています。
はじめに選考に受かる必要がありますが、受かれば手厚い支援が用意されているので、本気でAIエンジニアとして働きたい方は、とりあえずカウンセリングを受けてみるというのもいいかもしれませんね。
まとめ
以上が、私が思う最短の勉強方法です。最短と言っても結局は論文を読む必要があるので、それなりに時間はかかりますが、やはり深く理解するためにはある程度の時間を掛ける必要があると思います。
とは言っても、MOOCを使ったり、重要な論文を順を追って読んでいくことにより、初めから分厚い本を一生懸命読んでいくよりも遥かに早く実務に応用できるだけの知識を得ることができると思います。
もちろん最近ではネットでもそれなりの情報がありますが、やはり体系的にまとまっているもので勉強すると非常に効率的だと思いますので、MOOC、本には多少お金をかけていいと思っています。
自然言語処理のオススメ本に関しては、こちらでまとめていますのでご参考まで。
Udemy講座については以の記事で紹介しています。
そこまでくればあとは実践あるのみです。
実務ではうまくいかないことが多いので、知恵を振り絞って色々工夫を重ねていくしかありません!!
では!