2021年10月29日
【初心者でも出来る!】初心者でもチャレンジ出来る「AIの作り方」について
機械学習や深層学習(ディープラーニング)技術を利用した製品が登場したり、ビジネスでの活用が模索されるなかAIという存在が世の中にだいぶ浸透してきました。
技術者や分析職でAIに関心がまったくないという方はほとんどいないのではないでしょうか。
しかし、AIの作り方や開発方法となると多くの方が知らないと思います。
AIという言葉だけでも難しいイメージがありますし、人工知能は大学の研究者や先端企業が取り組む難解なテーマでもあります。
そのため、個人開発でAIを作るってかなり大変じゃないの?と考える方も多いのではないでしょうか。
確かに、まったくの初心者にとってプログラムは大変かもしれませんが、その手前の簡単なAIを試しに動かしてみることはそれほど難しくありません。
今回は、「自分でAIを作ってみたい」という方のために、初歩的なAIの作り方についてまとめていきます。
【目次】
1,初心者でもAIを作ることはできる?
2,機械学習にはどの程度のプログラミングスキルが必要?
3,AIをシステムに実装したり公開するには?
4,初心者向けAIの作り方
5,最後に
【初心者でもAIを作ることはできる?】
プログラミングや開発経験のない方が、「AIを作ってみたい」と初めて思ったとき、何から始めればよいでしょうか。
まずは、何も知らない初心者や未経験者がAIを作れるかどうかについて考えてみましょう。
初心者でもAIを作ることができるかどうかでいえば、AIを動かしてみることはできます。
ただし、研究者やAIベンチャーなどが開発しているような本格的なAIをゼロから作ることは難しいといえます。
また、後で解説する初心者向けの簡単なAIにしても、システムやWebサービスを利用して作成していきます。
そのため、AIを作るために最低限のITの知識は必要となります。
《オリジナルのAIは初心者にはハードルが高い》
AIを作る際、完全オリジナルのAIを一からすべて自分で構築していくやり方は非常に難しいです。
最先端のAI技術を駆使して作られたプロダクトは、通常何人ものエンジニアが集まってプロジェクト単位で作ります。
初心者がひとりで開発する場合には、もっと簡単なAIの作り方を採用すべきです。
《初心者がAIを作る方法》
初心者がAIを作る現実的な方法としては、「無料ツール」「API」「フレームワーク」を利用して開発する方法がおすすめです。
この3つの方法のうち、最も簡単なのは無料ツールやWebサービスを使ってAIを作ることです。
APIやフレームワークを利用するためには、プログラミングやIT開発のスキルが必要です。
無料ツールの例として、SONYが無料でリリースしている「Neural Network Console」があります。
これは、完全ノンプログラミングで深層学習(ディープラーニング)を行うことができるツールです。
そのほか、チャットボットを作成するWebサービスなど画面のインターフェース上から操作するだけで、AIを作れるような無料サービスが沢山あります。
ITエンジニアやWeb開発の経験があるけれど、AI開発は初めてという場合は、APIやフレームワークを利用することで手軽に機械学習や深層学習を利用したAI作成に挑戦することができます。
AI開発に利用できるAPIの例としては、チャットボットや音声UIなど自然言語処理に関する無料サービス「Wit.ai」などがあります。
また、学習モデル・アルゴリズムなど、AI開発で必要になる一般的な機能をまとめたフレームワーク・ライブラリを使ってAIを作る方法もあります。
フレームワークの例としては、Pythonで深層学習のプログラムを作成するときによく使われる「PyTorch」、機械学習の分野でよく使用される「TensorFlow」などがあります。
これらの方法でAIの開発を進めることで個人でも比較的簡単にAIを作ることは可能です。
【機械学習にはどの程度のプログラミングスキルが必要?】
《Python》
機械学習に必須のスキルに、Pythonでのプログラミングがあります。
機械学習は大量のデータをAIに学習させる技術のため、Pythonでのデータ処理計算や統計処理を行います。
他の言語と比べライブラリが豊富なため、プログラミング言語の中でも特にAI開発で利用されています。
ちなみに、FacebookやGoogleでも採用されている言語です。
Pythonは、初心者がこれからプログラミングを覚える際にも使いやすい言語です。
少ないコード量でプログラムが組め、シンプルなコードで読みやすいといった特徴をそなえています。
そのため、よく名前をきく「C言語」や「Java」などの言語よりも、習得の難易度が低いと言われています。
どのような学習の方法で学ぶかや、作りたいAIの種類によりPythonの習得に必要な期間は異なります。
参考までに、Webシステムをひとりで開発できるレベルになるのに必要な勉強時間の目安は、およそ300から400時間かかるといわれています。毎日3から4時間を勉強にあてたとして、3ヶ月間程度の期間となります。
《SQL》
データベースに関するプログラミング言語SQLも機械学習に必須のスキルです。
SQLを覚えるとデータベースの定義や操作を行うことができます。
AIに与える学習データを用意するためには、前処理と呼ばれるデータを構造化し、抽出・加工する作業があります。
データの前処理は、AI開発の8割を占めるとも言われているとても重要な作業です。
そのため、SQLとあわせデータベースに関する知識もAIを作る際に必須といえるでしょう。
SQLは、どのデータベースであっても同じ構文で操作可能なため、Python以外のJavaやC++、Rubyなど他のどのプログラミング言語とも組み合わせて利用可能です。
【AIをシステムに実装したり公開するには?】
個人開発でAIが作れたとして、作ったAIをWebサービスやスマホアプリとして公開するためにはどのような技術が必要でしょうか。
ここでは、フロントエンド・バックエンド・アプリというシステム開発の側面から確認していきましょう。
《フロントエンド技術》
Webサービスを公開するためには、フロントエンドの技術が必要です。
IT/Webでのシステム開発のうち、ユーザーの目に見える箇所に使われる技術がフロントエンド技術です。
具体的には、WebサイトやITシステムのUI(ユーザーインターフェース)などを指します。
そのほか、音声認識の技術もフロントエンドに含まれます。
フロントエンドは、Web系サービスであれば、HTMLやCSS、JavaScriptなどのプログラミング言語を用いて開発を行います。
また、富士通が提供している無料サービス「K5 Playground」などでもフロントエンドの開発が可能です。
《バックエンド技術》
AIを使ったWebサービスや業務システムなどを開発する際には、バックエンド(サーバーサイド)に関する技術も必要です。
ユーザーが入力した内容やデータを元に、結果を出力したり、記録したりなどの処理をバックエンド技術で行います。
たとえば、フロントエンドで認識した音声を処理するのはバックエンドの役割です。
バックエンドエンジニアは、システムの要件定義から設計・開発・運用などを行います。
プログラミング言語としては、先ほど紹介したPythonやSQLがバックエンドの範囲に含まれる言語です。
《スマートフォンアプリ開発の技術》
チャットボットなどのAIと会話ができるアプリ、AIがスケジュール管理をしてくれるアプリなど、スマートフォンアプリにもAIの技術が取り入れられたものが出てきています。
個人開発で、スマートフォンアプリにAIを実装させたいという場合、スマートフォンアプリを開発する技術も必要になります。
プログラミング言語でいうと、iOSの場合はSwift、Androidの場合は、Java、Kotlinなどが有名です。
【初心者向けAIの作り方】
の作り方の概要がわかったところで、初心者がAIを作る方法をもう少し詳しく見ていきましょう。
《AIを作れる無料ツールの紹介》
簡単なAIを作るためには、IT企業が公開しているツールやサービスを使うのが最も手軽です。
初心者が一番初めにAI作りに挑戦する場合、まずはこの無料ツールを利用する方法からやってみるのがおすすめです。
・簡単な対話型AIの作成に挑戦してみよう
簡単なAIを動かしてみるときに、既存のAPIを利用した対話型AIの作成がおすすめです。
よく利用されるAPIとして、NTTドコモが公開している「自然対話API」を利用する方法があります。
APIを使うことで、数学や機械学習の知識が必要になるアルゴリズム部分を自力で作ること無く、対話システムを作ることができます。
もうひとつ、リクルートが無料で公開している日常会話応答機能を提供しているAPI「Talk API」を使っても簡単な対話型AIを制作可能です。
これらの無料APIを利用して、まずは一度簡単な対話AIを作ってみるとよいでしょう。
【次のステップに必要なこと】
上で紹介した無料ツールを使った簡単な対話AI制作をやってみたら、次はもう少しレベルの高いAIを作ってみたくなるはずです。
それでは、AI制作の次のステップに進むためには、どのような学習が必要かを書いていきます。
《Pythonを学び、プログラミングを覚える》
AI開発に必須のプログラミング言語といえば、Pythonです。
まずは、Pythonの基本構文やコードの書き方を覚え、プログラミングができるようになることを目指してみましょう。
Pythonには、FlaskやDjangoといったWeb開発に使えるフレームワークも揃っています。そのため、Pythonを覚えると機械学習だけでなく、Webアプリケーションも開発できるようになります。
JavaやC#、Ruby、PHPなど他の言語を使用したことがあるエンジニア・プログラマーであれば、Pythonの習得は容易でしょう。
TensorFlowやKeras、Chainerなどの機械学習のライブラリを活用できるようになると、AI開発のひとつ上のステップに進んでいくことができます。
《機械学習・ディープラーニングを学ぶ》
本格的なAIを作るためには、機械学習やディープラーニングについて学ぶ必要があります。
機械学習とは、その名の通りAIにデータを与え、反復学習させるという概念です。
AIは様々なデータを学習することで、特徴やパターンを発見し、別のデータの分析や予測を行えるようになります。
ディープラーニングは、機械学習をさらに発展させた技術です。
《機械学習(Machine Learning)》
機械学習はアルゴリズムの考え方により、「教師あり学習」「教師なし学習」「強化学習」の3つに分類することができます。
・教師あり学習
教師あり学習は、入力データとそのデータの正解を与えることによって、入力と出力の関係を学習させるアルゴリズムです。
・教師なし学習
教師なし学習は、正解データなしの入力データを与え、プログラムが自らデータから特徴を見つけ出し、そのデータの構造や特性などを学習するアルゴリズムです。
・強化学習
強化学習は、プログラムが与えられた環境から自ら情報を取得し、報酬が最も多く得られる選択肢を学習していくアルゴリズムです。
《深層学習(Deep Learning)》
機械学習と深層学習(ディープラーニング)には、どのような違いがあるのでしょうか。
簡単に言うと、機械学習の方がディープラーニングよりも大きな概念であり、ディープラーニングは機械学習の一部です。
もう少し詳しく説明しておくと、ディープラーニングは人間の神経細胞を模したニューラルネットワークのシステムから発展しており、音声や画像の認識、予測など人間が行うような複雑なタスクをAIに学習させ、実行できるようにするための手法です。
AIを開発できるようになるためには、AIを動かす機械学習やディープラーニングを理解し、それを実現するための知識を勉強することが必要です。
《統計・数学を勉強する》
機械学習やディープラーニングなどAI開発に必要な知識を学ぶためには、数学の素養や統計学に関する知識が必要です。
これらについてもあわせて学習するとよいでしょう。
必要になる分野としては、
線形代数
微分積分
統計
という3つの分野が主です。
線形代数は代数学の一分野で、行列の性質や扱い方に関する学問です。
微分積分は高校数学でも学ぶ内容なので、名前ぐらいは聞いたことがあるのではないでしょうか。
統計学はその名の通り、統計に関する学問で、数学の知識を使ってデータの中から性質や規則性を見つけ出す学問です。
機械学習の前提となっているこれらの数学理論については、細かいことまで理解している必要はありませんが、基本的な部分については学習しておく必要があります。
《おすすめの書籍・本》
未経験からAI作りの次のステップに進むための学習をする際に、おすすめできる書籍を紹介しておきます。
プログラミング初心者やPythonの基本を学びたい人はまずはソーテック社の『詳細! Python 3 入門ノート』から始めることをおすすめします。
データ解析や機械学習にも触れており、AI開発のためにPythonを学び始めたいというニーズにマッチしたPython3の入門書です。
その先の機械学習プログラミングを学ぶための教材としては、オライリージャパンの『Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』やインプレスの『Python 機械学習プログラミング 達人データサイエンティストによる理論と実践』などが評価が高いです。
ディープラーニングについては、マイナビ出版の『PythonとKerasによるディープラーニング』、インプレスの『TensorFlowではじめるDeepLearning実装入門』などで学ぶことができます。
数学の素養として統計学を学びたいという場合は、翔泳社の『Pythonで学ぶあたらしい統計学の教科書』が、Pythonに関連させて統計学を学ぶことができるためおすすめです。
書籍をうまく活用して、AIの作り方を効率的に学習していきましょう。
【最後に】
今回は、AIが初心者でも作れるかについて、紹介しました。
プログラミングやAI作成は、今後も需要が高く、本業や副業で稼げる仕事です。
スマホをはじめて使った方でも、2〜3ヵ月使っていれば、大方使えるのと同じで、プログラミングも初歩の内容が分かれば、その後は、独学でも上達するので、本格的に学びたい方は、プログラミングのオンラインスクールなどで2〜3ヵ月くらい学んで習得してみるても良いと思います。
今回のブログは、以上です。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/11063642
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック