AI関連 開発メモ

■動機

ディープラーニングが流行り始めた頃から興味はあったのですが、なかなか時間がとれず、ようやく始めたところです。(2018年)
人工知能の第二次ブームのときに(90年ごろ)ニューラルネットワークの基本理論は大学(院)時代に学んではいたのですが、具体的な成果は無し。
ディープラーニングが流行り始め、状況が第二次ブームのときと明らかに異なり、応用範囲が広いと感じたのがきっかけです。

■目的

ディープラーニングを使ったサービス、製品などが日常的に報道されるほど一般的になっていますが(2018年)、そのようなものを(個人レベルで)やるつもりはありません。(そういうものはそういう人たちに任せればいい)
私が個人的にやりたいのはAIを積極的に取り入れるものではなく、これまでソフトウェア(プログラミング)で実現しようと思ったものをAIで実現できないか?という視点です。
わかり易い例で言えば、画像認識をプログラミングで(ロジックで)作ろうとすると納得のできるレベルにするまでかなりの試行錯誤が必要ですが、それをAIの技術に置き換える、というものです。
つまり、やりたいことをすべてプログラミングで実現する、ではなく可能なところはAIで実現する、というスタンスです。

アイデアは色々とあるのですが、現実的なものが見えてきたら具体的な内容を記述、公開したいと思います。

■Download

Yolo v4 for Windowsのバイナリ

Yoloの使い方を知っている人で、Windows用バイナリを作れない人向け - そんな人いる?

yolo-v4-win64.zip をダウンロード

※CUDA, cuDNNなしでbuildしたのでGPUは使わないかもしれません。学習用ではなく、認識専用を目的に作成してます。
※OpenCVに対応していないため動画(mp4など)は使えないはずです。

展開方法:

https://github.com/AlexeyAB/darknetをダウンロード・展開 or git cloneする。
展開したところへ unzip yolo-v4-win64.zipを展開

Suumoから物件の画像情報・物件URLなどを自動取得、間取り画像だけを抽出

卓球台の置ける物件を探すために作りました。
そういう需要は無い、あったとしてもそういう人は自分で作れるはず?
ということで公開は保留しています。
欲しい方は下記メールまで。
ちなみに、間取り画像は99%以上の精度(適合率)で抽出できます。

前提:Yolov4が動作する環境

■FAQ

よくある疑問を列挙していきます。

Q. Tensorflow+pythonをCPUで使用していましたが、そこからGPUを使う場合何か特別なことは必要ですか?
A. CUDAなどのインストールは当然必要ですが、Tensorflowに関してはpip3 install tensorflow-gpu というように、GPU版のTensroflowをインストールするだけでGPUを使用するようになります→それよりAnaconda3をインストールした方が良いかも?

■リンク

■書籍・講義

読書中。。

実践 時系列解析 ―統計と機械学習による予測

Pythonからはじめるアルゴリズムトレード ―自動売買の基礎と機械学習の本格導入に向けたPythonプログラミング

G検定関連

深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版

お勧め度:★★★★★

お勧めというよりはG検定には必須。通称白本。
G検定は一般向けの資格らしいけど、初心者がこれを読んでも理解できないところが多いはず。単なる丸暗記では合格できないので、理解するには他の書籍などが必要。(この本の内容を丸暗記できたとしても70点も取れないはず)
この本に書いてあることはだいたい理解できる、っていう人でもこの本だけでは合格できないはず。太字で書かれた用語をできる限り理解しないといけない(どこに書かれていた程度ではダメ)。

最短突破 ディープラーニングG検定(ジェネラリスト) 問題集 第2版

お勧め度:★★★★☆

問題集だけど解説がとても豊富。白本で足りなかったことを解説してくれます。通称茶本。
模擬試験も付録でついてくる。
ちょっと残念なのは、
・日本語・解説のおかしいところが多い(少なくとも10箇所くらいはある感じ)
・アラビア数字の1のフォントが変なので違和感を感じる(1なのか小文字のエルなのか縦棒なのか・・・)

個人的には白本と茶本、あとはグーグル先生の活用で合格できると思ってます。
→できました。けどこの書籍は難易度が高すぎ。そういう意味ではお勧めできない。
この書籍の問題文は長文が多いけど、本番の試験はこんなに長くありません。理解させるために長くしてあります。
付録のAVILEN模擬試験も長文が多く、難易度も高い。ですが、解説を読んで理解しておく必要があります。
出題問題のカバー範囲は8割程度かな?教科書本+茶本を合わせても試験全体を網羅していない感じがする。
※私はこの書籍を基準に学習したので、本番の結果は90%という無駄な点数を取ってしまいました

受験後に立ち読みしてみましたが、
ディープラーニングG検定(ジェネラリスト)最強の合格テキスト
こちらのほうが学習すべき内容がまとまっており、白本にない試験に出る内容もあったりして、学習効率は良いかもしれません。

G検定の学習方法(参考)


AI関連

深層学習
お勧め度:★★★☆☆
難易度:★★★★☆
ニューラルネットワークを中心とした人工知能について、理論的な内容を中心に説明されています。
理論的な内容と言っても堅苦しい学術的なものではなく、技術の背景にある理論的な面を詳細に説明してあり、他の研究などのリファレンスも豊富にあり、より深く理解するには非常にいい本だと思います。
数式が多く、それを理解するには理系大学の2年生くらいの数学レベルが必要かもしれませんが、数式が理解できなくとも理論的背景を知ることができます。
(私自身も数式についてはなんとなく理解できるくらいで深読みはしていない・するほどの必要なレベルに達していない)
この書籍は既存のシステム・ライブラリをそのまま使うのではなく、自ら最適なモデルを構築したい、という場合に必要になってくるのではないかと思います。
良い書籍ではありますが、初心者が理解するには難しいはず。
2020.9.18 時代遅れになってきているのでお勧め度を一つ下げました

Python機械学習プログラミング 第2版 →現在は第3版が出ています
お勧め度:★★★★☆←第3版であれば
難易度:★★★★☆
機械学習全般を実際的なレベルで理解したいと思い購入しました。
まだ1/3程度しか読んでいませんが、まぁまぁかなぁという印象です。(訳語なので読みにくい・理解しにくいところあり)
数式を使って理論的な説明もあり、この本に従って学習すると機械学習全般的なことを学ぶことはできるのですが。
→ある程度わかってからこの本を読むと押さえるべきところをしっかりと書いてある良い本だと思います。
2021.6.15 購入してから2年くらい経ち、ほとんど読み進んでいませんでしたが、改めて読み直すと Pythonコードはある程度知識・経験が無いと理解できないレベルですね。Pythonの基礎は一通り理解し、「Pythonによるデータ分析入門 第2版」の「9章プロットと可視化」くらいまでは理解していないとやや厳しいかも。本書籍の「本書の対象読者」には、「ゼロから始める場合も、データサイエンスの知識を補いたい場合も、本書は見逃せない情報源である。」としか書いていない。(私もこれを読んでPython初心者の私でも大丈夫だ、と判断した気が)難易度も一つ上げた
2021.12.14 TensorFlow Ver.1を対象にしているため、TensorFlowに関するコードの多くはTF2ではそのまま動かないためお勧め度を下げました。
2022.2.2 第3版も借りて読んでみました。やはり理論的な説明から実装まで機械学習を網羅的に丁寧に説明している良本だと思います。しかし残念なのは日本語訳が理解しにくいところが多い。
この書籍の対象者は、数学的な基礎知識があり(大学1年くらい?)、Pythonの基礎レベルを習得した人で、機械学習の理論的基礎から実践的な入門を知りたい、という人には最良の本の一つだと思うけど、やはり日本語訳がこなれていないため、何を言いたいのか読み手が意訳しないと入ってこない。それだけが残念。

つくりながら学ぶ!PyTorchによる発展ディープラーニング
お勧め度:★★★★☆
難易度:★★☆☆☆
基本的なディープラーニングについてはすでに理解しておく必要がある。環境のインストールについてもほとんど書かれていない。Python、PyTorchについても基本的なことを知っている前提。
私がこの本を購入した理由は、ネット上にGANがまともに動くサンプルが見つからなかったため(私の環境で)。
PyTorchをまだ使ったことが無かったため。
実践的な解説を知りたかったから。

TSUKUBA OCW・機械学習

お勧め度:★★★★☆
難易度:★★★★☆

無料で視聴出来る大学の講義です。機械学習全般を網羅的・理論的にとてもわかりやすく説明しています。
学習に必要なスキルとしては、理系大学1~2年程度の数学知識、特に線形代数。これがないと挫折します。
(講義は情報処理系の大学三年生を対象にした専門的授業)
プログラミング関連の説明は無し、最新のモデルなどの説明も一切無し。あくまで数式を使った理論的な説明が中心なので、本当の意味で基礎力を身につけたい人、にわかAIプログラマーと差を付けたい人向けです。

※難易度は★が多いほど難しいです。

■学習日記

こちら


連絡先: