windowsのターミナルでpipでパッケージのインストールができないとき、
proxyの設定がされていなことが原因の場合があります.
「これならわかる深層学習 入門」 瀧 雅人著 の正誤表
機械学習スタートアップシリーズ これならわかる深層学習入門 (KS情報科学専門書)
- 作者: 瀧雅人
- 出版社/メーカー: 講談社
- 発売日: 2017/10/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
本屋でパラパラと見たところ、機械学習や深層学習に関して非常に丁寧に数式を使って説明してあるようでしたのできちんと一冊読んでみようという気になりました。
まだ最後まで読んでいませんが、いくつかタイポや書き間違えらしき部分がありましたので、自分用のメモも兼ねて書いておきます。
(誤) -----> (正) という書き方で書いています
[2017/1/13追記]
以下の正誤表でアスタリスクが不要としていましたが、Chapter1に「アスタリスクのついた節は若干アドバンスな内容ですので、最初は読み飛ばしてかまいません.」という記述があるのを読み飛ばしていましたので、正誤表を訂正しました.
[Chapter 2]
p.15 式 (2.11)右辺のはイタリック体の
p15 式 (2.15)は以下のように修正
]
]
p.16 式 (2.20)
----->
p.18 式 (2.25)の2行下
------>
p.26 (2.45)の2行下
----->
p.32
式(2.59)の3行下
対数オッズ比が1を超えると -------------------> 対数オッズ比が0を超えると
p.35 定義2.5
の前にが抜けている
[Chapter 4]
p.81 4.2.7 Adamの2行下
式(4.26) -----> 式(4.27)
p.85 式(4.45)の2行下
同時に第層のユニットと結合している層の -------> 同時に第層のユニットと結合している層の
p.86 式(4.47)の1行下
--------->
p.91 4.4.3節のタイトル文章のアスタリスクが不必要
[Chapter 5]
p.100
式(5.15), 式(5.16), 式(5.17)のの右肩の添え字のカッコが不必要
p.107
式(5.30)
------------>
p.109
式(5.32)の3行目exponentialの肩のカッコの数が合っていない.
式(5.33)の左辺も同様.
p.111 2行目文中の式
--------------->
[Chapter 6]
p.116
式(6.4)
d -----> y
p.119
(図 6.1)で ----->
p.119 3行目の文中の式
----->
p.119
式(6.9)
---->
[Chapter 7]
p.143
式(7.30) 右辺
------- >
p.146
演習 7.1
----->
p.149
7.5 デノイジング自己符号化器 1行目
4.5節 ------> 5.5節
p.149
最終行
適当な確率でlがuに -------> 適当な確率でlかuに
[Chapter 8]
p.154
図8.1の一番右の図のキャプション
(b) --------> (c)
p.159 図8.4の一番下、緑色で塗られている3x3のフィルタの右下の成分
2 --------> 0
p.162
8.2.3, 8.2.4節のタイトルのアスタリスクが不必要
また、読み進めて気づけば追加していきます.
「機械学習入門」 大関 真之著 を読みました
- 作者: 大関真之
- 出版社/メーカー: オーム社
- 発売日: 2016/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
タイトルに入門とあるように物語仕立てで機械学習のことを知らない人でも楽しんで読めるような内容になっています。
しかし、一方で著者は物理学から機械学習の研究者になり、学術論文もだしているような本物の研究者ですので、
書いてあることは正確で信頼できます。
私は機械学習や深層学習のことをある程度はしっていますので、あぁあのことを言ってるんだなと読んでいて気づいてしまい
タネを知っている手品を見ているような感じでしたが、全体知識がなくても少なくとも6章までは読み進められると思います。
6章から話が抽象的になり始めて理解しにくくなるように感じました。
それでも平易な説明で正確性を損なわずにそれでいて、物語仕立ても崩さずに説明しきっているところはこの手の本ではめったに見ないほどの力作だと感じました。
著者の更なる著作を期待しながら本書を読み終えました。
Visual Studio codeでLatexを使う
2024/5/17追記
VSCode で最高の LaTeX 環境を作るというとても素晴らしい記事がありましたのリンクを張ります
qiita.com
Visual Studio Code でLatexを使って文章を書いて、コンパイル、platex2pdfまでやってしまおうという話です.
まずはVSCodeのプラグインであるLaTeX Workshopをインストールし設定します.
インストールと設定は以下の解説通りにやればすんなりOKです.
ちょっとした注意としてこのままですとjarticleはコンパイル通りますが、ujarticleはコンパイル通りません.
こちらを使う場合はuplatexを使用する必要があります.
\documentclass[16pt,a4j]{jarticle} % <- platex用
or
\documentclass[a4j]{ujarticle} % <- uplatex用
Ctrl+,(カンマ)でVS Codeの設定画面を開きlatexの設定を追加するときに,設定ファイル以下のように"-u"を
追加したものに変更します.
"latex-workshop.latex.toolchain": [{
"command": "ptex2pdf",
"args": [
"-u",
"-l",
"-ot",
"-kanji=utf8 -synctex=1",
"%DOC%"
]
}],
uplatex とplatexの違いについては以下のサイトに詳しいです.
基本的にはuplatexを使用した方がよさそうです.
機械学習用ハードウェア
2017年の8月あったHot Chips 2017でマイクロソフトがディープニューラルネットワークの推論処理を高速で実行できる
クラウド環境Project Brainwaveを発表したというニュースは気になりますね。
推論処理のレイテンシを下げることは今後IOTとか自動車とかエンタテインメントにも必須ですから、各社注目しているというわけですね。
マイクロソフトはFPGAを用いますが、専用ハードを作るGoogleのような解もあるし、NVIDIAはいまはどちらかというと学習向けにGPUを提供していますが、本来GPUはリアルタイムコンピュータグラフィックスで発展したことを考えると推論エンジンにも進出してくるでしょうし、今後半導体業界を巻き込んで動きがさらに加速すると思われます。
2017/10/11 誤字を修正しました
pythonを使った深層学習用ライブラリkerasのインストール方法
kerasとは?
kerasはTensorFlowやTheanoをバックエンドとして実行するライブラリです。 深層学習のネットワークのアーキテクチャの構築を直感的に記述することが可能なライブラリです。 要は、深層学習をお手軽に書くことができますよ、ということですね。 詳しくは、kerasのホームページをご覧ください。 日本語に翻訳されたページも用意されています。 keras.io
kerasのインストール
Windows10Pro64bit, GPUはNVIDIA GTX1050の環境にインストールします。
まずは、以前このブログで書いたように
wshinya.hatenablog.com
Anacondaを使用してkeras用の仮想環境を作製します。
次に、作成したconsoleを立ち上げ作成した仮想環境をactivateします。
仮想環境のプロンプトがでたら、
pip install tensorflow-gpu
conda install scipy
pip install keras
であっさり成功、と言いたいところですが、"Fail building wheel for pyyaml"というエラーメッセージで失敗しました。
どうやらインストールスクリプトのどこかで失敗しているようです。
前にも同じような現象に当たったことがあり、その時にはコンソールを管理者モードで起動すると成功したので、
以前と同様管理者モードで立ち上げて上記pip, condaコマンドを実行するとインストールは無事成功しました。
インストールしたパッケージのバージョンは、
conda list
で見ることができます。
これで確認すると、kerasは2.0.8, scipy 0.19.1, tensorflow-gpu 1.3.0が
インストールされていることが分かります。
正しくkerasがインストールされているかどうかを確認するために、pythonを立ち上げて
import keras
をやってみました。
残念ながら、
ModuleNotFoundError: No module named 'yaml'
というエラーメッセージが出てしまいました。
yamlがないということなので、
conda install pyyaml
をコンソールで実行し、再びpythonでimport kerasを行うと今度は無事エラーが消えました。
ちなみにインストールしたpyyamlのバージョンは3.12でした。
いくつかはまりましたがこれでkeras + tensorflow-gpuの環境の構築は成功です。
numpyで行列を扱うときに気持ち悪いこと
例えば以下のような行列計算をnumpyで書くときに皆さんはどのようにしますか。
A:1行2列の行列
B:2行3列の行列
C: C = AxB -> 1行3列の行列
このとき,
A= np.random.rand(2)
B= np.random.rand(2,3)
C= np.random.rand(3)
と書くことが多いですが、
A, B, Cをshapeで見ると
A: (2,)
B: (2,3)
C: (3,)
となっていて、(行の数、列の数)となっていなくて非常に気持ち悪いです
以下のように書くと,
A= np.random.rand(1, 2)
B= np.random.rand(2, 3)
C= np.random.rand(1, 3)
のほうがしっくりくるのですがどうでしょうか。
テンソルの足の縮約を考えた時も上の書き方のほうが数学の表記とあっていてすっきりします。