投稿元:
レビューを見る
機械翻訳であったり、メールの自動返信等に使われる自然言語処理について書かれています。
これらのことは、ライブラリを使えば簡単にできるのでしょう。
ただ、ブラックボックスなのは気持ちが悪いし、自分の場合は作ることよりも、仕組みのほうに興味があるので、この本を読んでみました。
前半は基礎的な部分の解説。
ざっくりまとめると「単語をベクトルで表現し、単語同士のベクトルの内積を計算する。この内積を類似度と呼び、ベクトルの方向性が同じ(似た単語)であれば、結果は大きくなるし、逆向き(反対の意味)だと小さくなる。」ということらしいです。
こうすることで、ベクトルの演算により[king - man + woman = queen]の問題も解くことができるのは面白いと感じた。
後半は、精度をさらに向上させるための改良の話。
ここからは難易度が急に高くなり、一度読んだだけで理解するのは困難。
自分は理解が追い付きませんでした。
時間があったら、また読んでみることにします。
投稿元:
レビューを見る
なんやAttentionってそういうことかー
分かっているかつ表現が上手い人の本は小気味いいな
数学も知らずに深層学習をやるなというドヤ顔の人
重回帰分析の三次元版が深層学習とか声が大きいだけで経営層になった人
とは一線を画す
投稿元:
レビューを見る
最近、IT のお勉強からは遠ざかっていたのだが、久しぶりにがっつりお勉強。名著の誉れ高い前著「ゼロから作るDeep Learning」の続編、自然言語処理。最近、職場の周りで自然言語処理をやっている人達が多いので、連られて勉強してみた。
Wrod2vec から単純 RNN、LSTM、seq2seq、最後は Attention まで、わりと最新の論文までフォローして判り易く日本語で噛みくだいて説明している。こういう本は著者本人が本当に深く理解していないとかけないもので、小さなサンプル・コードにも随所に知見が隠されていて素晴しい。
投稿元:
レビューを見る
最高。とてもわかりやすい。この本と前の本を読んで、やっと、なんでsigmoidとか変な関数使うんだろうとかいうのがわかった。微分できるからなんだね。そして、微分した形が簡単で計算がすぐできるってこととか。そして勾配消出とかの仕組みとそれに対抗するテクニックとか。昔非線形有限要素法とかやってたけど、その中でRITZ法っていう収束計算において距離を制限することで発散を防ぐってのをやってたのを思い出しましたよ。で、この本を読んでわかったことは、データを集めることが重要なのと、速い計算機を持ってるのが重要なのと、この本レベルの知識をもってハイパーパラメータのチューニングをできる職人になるってことですな。いや、大変だわ。
投稿元:
レビューを見る
ゼロから作るDeep Learningの続編。Pythonやニューラルネットワークの解説はあっさりしているので、前著を読んでいないと理解は難しい。
本書は、ニューラルネットワークを用いないカウントベース手法に始まり、word2vec、RNN、Attentionと順に学習していく。また、単語ベクトルの作成、RNNによる言語モデル作成、テキストベースの足し算、日付フォーマットの変換等の実装を行う。
RNNが出てきて以降は、なかなか難しいところも多く、正直あまり理解できていない。本書を読んで直ぐに翻訳プログラムが書けるようになるわけではないが、Google翻訳で使われている考えは同じということなので、少し自信になった。
投稿元:
レビューを見る
大部分はすごく読みやすく、サンプルコードを動かしてみたいと思えるものでした。最後の章のAttentionやTransformerは最近何かと話題に挙がるけど、ここはほとんど理解できなかった。もう一度戻ってくる必要がありそう。
投稿元:
レビューを見る
ディープラーニングを使用した自然言語処理について色々とわかりやすく解説されている。内容としては主にword2vec, RNN(LSTM), seq2seq, Attentionについて説明している。ある程度のニューラルネットに関する知識は前提とされている気もするが、一応1章で簡単な復習と書籍内での実装ルールに関する説明がなされている。説明では計算グラフが重視されており、順伝播のデータの流れと逆伝播の勾配の流れを計算グラフを使用して説明することにより入出力にのみ注意を払えば良いレベルまでネットワークをカプセル化し、そのアーキテクチャをnumpyを使用した独自モジュールをしようして実装するという流れを踏んでいる。コンテキストのつなぎ方がうまく、説明→実装→結果→問題点→改善方法という流れで本全体のコンテキストをできるだけ途切れないように説明しており、ニューラル自然言語処理の軌跡を理解することもできる。また、ネットワークのメカニズムやうまく機能するロジックについても著者なりの説明をしており、理由をあやふやにしないようにしているという点でも好感が持てる。
しかし、説明の粒度が書籍全体を通して一貫していないという問題はあると考えており、例えば、word2vecの章に関して言えば「なぜ重みが分散表現として機能するのか?」「skip-gramの方がなぜCBOWよりも精度が良いのか?」「計算量を削減するときになぜ2値分類に問題を置き換えると計算量が削減されるのか?結局全ての単語に対して2値分類器を作成しなければならないので計算量が削減されることは自明ではないのではないか?」などといった根本に関する部分が説明されておらず混乱を招く部分も多かった(他にも多数あったが割愛する)。加えて、数式を使用しないという方針があることに対しては理解を示すが、その中で数式を使うのであれば数式に徹底して欲しい。例えば、合成関数の微分に関しては経路が複数あるから総和になるという説明がなされているが、その事実が自明であるとは(少なくとも私は)到底思えないし、中途半端に意味不明な説明をするくらいなら証明を付録につけるか他書を参照して欲しい。最後にPythonでの実装についてだが、これに関しては本書でも随所にパフォーマンスを犠牲にしてわかりやすさを優先したという記述があるが、記述が無い部分でもパフォーマンスが犠牲にされている部分が大量にある。細かい部分を言い出すとキリが無いので割愛するが、クリティカルな部分でいうと、例えば、P76では上位K件の要素をN件要素のベクトルから抽出するという問題があるが、本書ではこれに対してargsortを用いている。これは平均時間計算量がO(NlogN)となるが、上位K件しか使わないのであればnumpy.partitionのようなアルゴリズムを使用した方が良くこの場合だとO(N)で取得することができる。
後半は批判も多くなったが、全体を通してはニューラルネットワークのアーキテクチャを理解しやすい構成となっており評判通りの良書だと思われる。私は以前MLPシリーズの深層学習でLSTMについて学習しようとして、結局機能するロジックを理解できずに終わったという経験があるのだが、今回は少なくとも以前よりは確実に理解が深まったと思う。この本ではTransformerについては触れる程度しか説明していないため、この後に論文を読んでみようと思っているが、その際にこの本で学んだ内容が役に立つのでは無いかと期待している。
投稿元:
レビューを見る
ゼロから作るディープラーニングの続編となっています。
第1章で前著のおさらいをしたあとに、特にwordvec2とRNNと呼ばれるリカレント型ニューラルネットワークについて、コードを紹介しながら説明してくれています。
基本的にコードを書かないと全く意味がないと思いますし、個人的には読み物というより、作り手に寄り添う本なので、書きながら理解をする形が合っていると思います。
この分野に興味がある方、コードを書く前提の方には、良書です。
投稿元:
レビューを見る
超おすすめだったやつの第2弾。2年前くらいに入手して流し読みして放置してたけど、第3弾も発売されたのでまじめに読みなおした。前作はコードも全て動かして1行ずつ完璧理解したけど今作は読んだだけ。最初はコードも追ってたけど後半はコードは適当。なのであんまり理解できてません。一応第4章のWord2vecまでは理解したけど、RNNで言語モデルつくるとこからよくわからん。Word2vecは推論が目的じゃないのでネガティブサンプリングとかできるけど、RNNの学習じゃまじめに推論するため、語彙分の配列がいるんじゃないの。さらにseq2seqになったら単語毎じゃなくって文字毎になったりして頭ついていきませんでした。ゲートとかアテンションとかはもう一回やらねば。でも、若い人は読んどいた方が良いと思う。
投稿元:
レビューを見る
前作に続き自然言語処理で利用されるRNNについて、丁寧に解説してくれている。LSTMやAttenstionの原理もよくわかった。
投稿元:
レビューを見る
なぜ今これに取り組んでいるのか何度も繰り返し記載してくれているので大変わかりやすいと思いました。また注釈などでポイントや感覚的なところも伝えてくれるので読んで損は無いと思いました。
投稿元:
レビューを見る
ゼロから作るディープラーニングの続きの本。
主に自然言語処理、RNN、LSTM、Attensionについて書かれている。
計算グラフや図が充実しており、非常に分かりやすく満足度の高い1冊。
ただ学習の際には、
・ゼロつく①の内容が頭にはいっていること
・前章までの内容、関数についてきちんと理解出来ていること
が必要。
初心者向けとは言っているが、基本的なニューラルネットワークの仕組みと行列計算の知識は必須である。
投稿元:
レビューを見る
E資格取得のために購入
自然言語処理を理論ベースでE資格レベルにマッチした良書
技術進展で古くなるかも・・・
投稿元:
レビューを見る
最近話題の翻訳や文章生成などがどんな感じで実現されているのかを、ざっくりとですが把握できるようになりました。読んで良かったです。
レビューの詳細はQiitaにまとめています。
https://qiita.com/segavvy/items/0f2980ad746d797dd8c1
投稿元:
レビューを見る
# 1周目 読み終えた
適性が低いためなのかどうか、読んでいてあまり楽しいと思えなかった。4章の途中から、このまま読み進めるのが苦痛になってきて、サラッと流してどんな感じのことが書いてあるか把握する程度で終えておいた。またいずれ再挑戦するつもりでいる。そのためには、この分野への関心を高めることで、楽しいと思えるような状態まで持っていく必要がある。いくつも本があるので、色々試してみる。その後でまた戻ってくるようにする。
## 5〜8章を読んだ
➤ 5章 リカレントニューラルネットワーク (RNN)
➤ 6章 ゲート付きRNN
➤ 7章 RNNによる文章生成
➤ 8章 Attention
流し読み。もう少し別のとこで経験を積んでからにする。
## 4章を読んだ ➤ word2vecの高速化
さっと流した。前章の続きとなる。3週間程度間が空いたため、あまり前の内容を覚えていない。むしろ、何も覚えていない。そのときはしっかり読んで理解したつもりでいた。3週間程度でこれほど記憶が風化してしまうのなら、この本を読み終えても、全体に渡ってやはり風化していくことになるのだろう。そうすると、ここの章を時間をかけてじっくり学ぶ必要があるのか、という疑問が湧いた。この章は前章を発展させた内容であるため、それを理解していないと理解が難しいところがある。一度さっと前の章を見直すべきだが、どうも意欲がわかない。こうもあっさり前の内容を忘れてしまうのなら、もう適当に進めてしまおうという気になった。これは悪い兆候だ。たとえ記憶が風化してしまうとしても、それを繰り返していけば、いつかは定着していくことが期待できるので、無駄な学習ではない。もし、ここで適当に流してしまうと、それも難しくなる。今のところ、ディープラーニングに面白さを見いだせていない。面白くないこと、興味がわかないことの学習は効率が著しく悪い。まずはいろんな情報に触れてそこをクリアしたい。つまり、楽しいと思えるようになるまでは軽く流しながらやっていく。楽しみ方が分かったあとでしっかりと学び直すことにする。
## 3章を読んだ ➤ word2vec
前章のものはカウントベースの手法と呼ばれるものらしい。そして、この章で扱うword2vecは推論ベースの手法と呼ばれるらしい。次章以降に本格的なものを示すとして、この章ではわかりやすくシンプルなものを扱われる。そのおかげもあるのだろう、前章のものに比べて特別に難しくなっているということはなかった。また、カウントベースの手法と推論ベースの手法は、現在ではどちらが優れているかは決められないということはないらしい。word2vecは与えられたコンテキスト(文として意味のある単語の並び)を入力としてモデルに与えて、そこから次に出現するであろう単語の出現確率を出力として得る。そのモデルの一つに、この章で取り上げられているCBOWと呼ばれるものがある。もうひとつ有力なものに、skip-gramというものがある。一概にどちらが優れているかとは言いづらいものの、skip-gramを使ったほうが良い結果が得られるらしい。
## 2章を読んだ ➤ 自然言語の単語と分散表現
自然言語処理というものがどのように���われるのか、まったく前知識がなかった。結局の所、数量的な表現に置き換えることで推論可能なデータを獲得する処理であることが分かってきた。おそらく、今後はこの処理を洗練させていくことで精度を上げていくことになるのだろう。自然言語であろうと、コンピューターで扱う以上は計算可能な問題でなければいけない。一見、普通の人にとっては困難そうな問題も、その手法が確立してしまえば、それを学ぶだけで実現可能となる。まだ先は長いがゴールは少し見えてきた。
## 1章を読んだ ➤ ニューラルネットワークの復習
前巻のダイジェストのようなもの。かなり時間が空いてしまったので、すっかり記憶から消え去ってしまったものかと思っていた。読んでいると不思議と思い出されてきた。十分にわかりやすい内容だが、この章だけでは十分な前知識を得ることは難しいだろう。1巻から通して読むことが想定されているものと思われる。