KIMUSON BLOG

きむそんの雑記ブログ

【入門】人工知能/AIを個人で開発するための事前準備まとめ

この記事をシェアする

f:id:samuraikid520:20171226160245j:plain

最近何かとAIや人工知能といった話題がホットトレンドになることが多くなりました。

自分もいちようエンジニアをやっていますので、個人で人工知能/AIのOSSを利用しながら勉強していたりします。

最近ではツイッターボットの返信にAIを利用したりしました。
www.kimuson.com

「まずは早速作ってみよう」

「そもそも何から勉強すればいいんだろう?」

これが僕にとっての最初のつまずきポイントでした。

なので今回は、人工知能/AIの個人開発を行っていく上で参考にしてきた資料を紹介していきたいと思います。

人工知能/AIの概要

現状、明確な定義は存在していない。

学術的な定義でいうと主に二つが挙げられる。

・人間の知能を持った機械のこと
・人間が知能を使って行うことを機械にさせること

しかしながら、明確に定義はされていないため世の中一般的な認識として

「人工的に作られた人間の知能を持った機械」

これを世間一般的に「人工知能」や「AI」として言われたりする。

参考にした記事

人工知能って何?

人工知能/AIの歴史

前述でも書いたが明確な定義がないため、背景を踏まえ、人工知能とは何かを理解していく必要がある。(APIを使ったり、作ってみたりしたけど「これって人工知能じゃなくね?」を防ぎたい。)

人工知能の歴史を理解するためには以下二つの参考資料が役立った。

f:id:samuraikid520:20171226141831p:plain
引用元:総務省|平成28年版 情報通信白書|人工知能(AI)研究の歴史

これをみるとわかる通り人工知能ブームというのは過去何度か起きているらしい。

今でいうと2000年代から始まっている第3次人工知能ブームに該当する。

ビックデータの到来や、それらを高速に演算できるコンピューターの発達により、機械学習や深層学習といった分野が発展したと考えられている。

多分これから勉強して理解しなくちゃいけないことは、この歴史を上から概要レベルで理解していく必要があるのかもしれない。

<探索と推論>
・探索推論
自然言語処理
ニューラルネットワーク
遺伝的アルゴリズム
エキスパートシステム

<知識表現>
・知識ベース
音声認識
データマイニング
オントロジー
・統計的自然言語処理

機械学習
ディープラーニング

うん、すべての言葉が理解できない・・・。
というわけでこれらを歴史も踏まえて概要がわかる本を探してみました。

もともと他の人工知能に関するエントリーを挙げていた方が読んでいた本だったのと、レビューがあまりにもよかったで購入。歴史も踏まえて概要を抑えておきたい方、人工知能の学習に入門したい方にはオススメです。

実際に人工知能/AIを使ってみる。

概要を理解したところで実際に書籍で紹介されているハンズオンや、WEB上で公開されているOSSAPIを使用してみます。

ここからが本題ですよね。

まず方針は以下として進めていく。
・簡単なものから始める。
・言語はpythonを使用
pythonはハンズオンやりながら覚えていく

というのも、以前少し人工知能についてかじった際、とても難しい書籍を選んであえなく挫折した経験がある。

そのためとにかく優しい書籍や簡単なハンズオンに最初は取り組む。

オススメの入門書籍

機械学習

人工知能に触れる際は、必ず大量の情報を取集する必要がある。
そのため、スクレイピングという「WEB上の情報をマルっと習得する技術」が必要になる。
本書では、pythonを使った簡単なスクレイピングや、機械学習の基本について学習できる。
過去にプログラミング言語を習得したことがある人は、この本を読みながらpythonの勉強も同時にできる。

効率的に勉強を進めたい人は上記の本をオススメする。

もし「書籍を買わずして機械学習を学びたい!」そんなわがままなあなたには以下の記事がオススメです。

煩わしい環境構築もAnacondaを使うことでより簡単になります。

https://news.mynavi.jp/series/Python_MLnews.mynavi.jp

Anacondaを利用してPython機械学習を行う環境を作っていきます。Anacondaを利用すると、Pythonに加えて、数値演算、データ分析、機械学習等でよく利用するライブラリを一括でインストールでき、難解な環境構築作業から解放してくれます。

<深層学習>
pythonでの深層学習(ディープラーニング)の学習では以下がオススメです。
この本では、「深層学習(ディープラーニング)とは?」という話の深堀ではなく、実際に実装することによってディープラーニングの理解を深めることができます。

実装 ディープラーニング

実装 ディープラーニング


<プログラミングが初めての方向け>
そもそもプログラミングが初めての方は少々遠回りする必要がある。

まずはpythonの基礎文法を理解する。
オススメはドットインストールです。
僕も長らく使っていますが、基礎を勉強するのにもってこいのサービスです。
https://dotinstall.com/lessons/basic_python_v3/38701

まとめ

今回ご紹介した内容は、あくまで個人開発をするための準備であり、実際に開発をするためにはこの他にもビジネスサイドの勉強も必要になるかと思います。

しかしながらいろいろな情報が出回る中で「何から手をつければいいのか」といった疑問が僕が勉強を始めようとした当初持っていたためまとめてみました。

少しでも参考になれば幸いです。

ちなみに自分が初めて勉強する際に以下の記事を参考に勉強を進めて行きました。

ここに書いてある内容をさらに詳しく書いてあるのでよければご参考ください。
https://qiita.com/ryosuke1120/items/2e0999a35878b997fdcaqiita.com