AIの簡単な始め方

AI
Photo by Tara Winstead from Pexels
JUVET
JUVET

はじめまして、サポーターのJUVET(ユーベ)です。
よろしくお願いします!

ここでは、AI(ディープラーニング)を使いこなすための基本を学びます。

記事の内容は入門ですが、
基礎を積み重ねていくことで最新の AI にも通用する武器になります。

記事の終わりに、内容の理解度をチェックできるクイズも用意しましたので、
ぜひ最後まで読んでいただけたら嬉しいです。

AIを使うまでの具体的な手順

Photo by Tara Winstead

はじめに、これから使っていく用語について少しお話しします。

まずは AI(エーアイ, Artificial Intelligence)という言葉についてです。
この言葉は広い意味を指す概念なんですが、
最近ではニューラルネットワーク(ディープラーニング)や
アテンション(トランスフォーマー)を発展させた
手法を指していることが多いように思います。

ここでニューラルネットワークが一体何なのか、気になるところですが、
いきなり理論(仕組み)の話をするつもりはありません。

なぜなら、そういった理論を覚えたところで
あなたが実際に AI を使えるようになるわけではないからです。
※ 理論は別の記事で説明します。

あなたが AI に詳しくないのであれば、
まずは実践(プログラミング)するところから始めるべきです。

JUVET
JUVET

プログラミングとは、
PCに「これお願い」と何か命令して、動かすことです!


話が見えてこないかもしれませんが、
まず知っておいてほしいこととして、AI(なんだか難しい理論)というのは
数式・計算で成り立っているということと、
すべてコンピュータで動くという事実です。

JUVET
JUVET

コンピュータ(computer)というのは、
もともと計算を行うための機械として開発されてきました!


つまり、理論と実装(コンピュータ上で理論を計算すること)は
分けて考える必要があるということです。

仮に理論の方を先に覚えたとしても、
コンピュータで「その理論をどのように実践したらいいのか分からない」
という状態に陥ってしまいます。

そのため、あなたがまずやるべきことは、
「コンピュータに何か命令する」方法を覚えることで、
それがプログラミングと呼ばれる行為なのです。

もう少し言うと、プログラミングとは
プログラム(program)と呼ばれる命令文を作成してPCを動かすということです。

JUVET
JUVET

今後、プログラムという用語が登場したときは、
「PCを動かすための命令文のことか」と理解しましょう!


そのため、改めてプログラミングといえば
プログラムを作成してPCを動かすという意味になります。

プログラミングと聞くと「難しそう」と思われるかもしれませんが、
一気に覚えようとしなければ決して難しいものではないです。

PCに命令する方法(ルール)は実は決まっているので、
ここでは、そうした命令文を1個づつ書いていきながら、
「ゆっくりと確実に身につけていく」というスタンスで進めていきます。

そうして、プログラミングがある程度できるようになってはじめて、
AIの理論をコンピュータに落とし込めるようになっていくのです。

とは言っても、最近の傾向として、
ある理論(もしくは研究)を発表した際に
著者実装も一緒に提供されることが多くなってきています。

著者実装というのは、論文著者(の方々)が
「このプログラムを使うと発表した研究と同じ結果になるはずなので、試してもいいですよ」と
その研究(最新の技術や手法)のソースコードを公開する流れがありまして、
基本的に誰でも無料で使うことができます。

JUVET
JUVET

ソースコードもプログラムと同じような意味で
使われることが多く、
PCを動かすための命令文だと思っていただければOKです!


そのため、ゼロから理論を再現する必要はなく、
(というか難しいので)
提供されているソースコードを活用してAIを使ってみるのが最も手軽な方法になります。

AI を使いたければ、まずプログラミングからはじめよう

オープンソースとは

前節では、AI を使いこなすためには
まずプログラミングから始めるべきだという話をしました。

その背景として、
最新技術(著者実装)が無料で提供されている場合が多いからでした。

では、すべてのプログラムが無料かというと、
そうではありません。
そういったプログラムも著作物なので、保護の対象となります。

しかし、そんなことを言ってしまっては、
誰もそれらのプログラムを使うことができず、
使用する際には、いちいち許可を取らないといけなくなります。

そこで、提供されているソースコードを誰でも使えるように、
ライセンスと呼ばれる利用許可書も一緒に発行されるようになりました。

JUVET
JUVET

ライセンスには、たとえば

  • 著者の名前は記載しなければならない
  • 商用利用してはいけない
  • ソースコードを公開しなければいけない


などの記載があり、
ライセンスごとに内容は異なります!


このように、条件さえ守れば「誰でも、自由に、利用できる」というのが
オープンソース(OSS, Open Source Software)です。

そして、先ほど話していた著者実装も
このオープンソースに該当する場合が多いです。

ただし、中には、ソースコードは公開しているものの、
ライセンスは発表していない研究も見受けられます。

そういう場合は、「誰でも自由に利用できる」わけではないので、
オープンソースとは呼べません。
トラブルを避けるためにも、そういったソースコードは
使用しない方が無難だと思います。

これでプログラミングを始める理由がより明確になったかと思います。

最初は「何でプログラミング?」と思われたかもしれません。
しかし、AI は実はオープンソースとして、
つまり、ある程度自由に使えるプログラムとして
提供されていることが多いので
あとは最低限のプログラミングさえできれば、
AI の恩恵を受け取ることができるというわけです。

このブログの基本スタンスである、
「ゆっくりと確実に」プログラミングを身につけていただければ、
オープンソースとして提供されているソースコードも
「読める」ようになり、
ご自身で「どのように動かしたらいいか」が分かるようになります。

一見すると、プログラミングの基本から始めるので、
遠回りのように感じられるかもしれません。
しかし、
自由に利用できるオープンソースが提供されていても、
プログラムが読めなければ、AI を使うことすら叶わないのです。

オープンソースは、ライセンスさえ守れば誰でも自由に利用できる

AIのトレンドから学ぶべき言語を考えてみる

CVPR 2022 採択論文一覧

前節では、比較的自由に利用できる AI と
オープンソースの存在についてお話しました。

またオープンソースは誰でも自由に利用できるとはいえ、
最低限のプログラミングスキルが必要になるのでした。

それでは、実際に提供されている
AI のプログラムを読んでみたいと思ったとしましょう。

そうしますと、まず「どの」言語を読むべきか、
考えなければいけません。

あまりピンと来ないかもしれませんが、
実はプログラミング言語は目的によって使い分けるのが普通なので、
選択できる言語の種類が豊富に用意されています。

JUVET
JUVET

私たちが普段話す言語(日本語や英語)
のようにプログラミング言語にも
多くの種類があるのです!


今回は AI を使うということが目的なので、
AI のトレンド(国際学会)から
どのプログラミング言語がよく使われているのか調査し、
これから使うべき言語を検討します。

その前に少しだけ、先ほど登場した学会についてお話しします。
世の中の研究者は自分たちの研究で出した成果を後世に残すため、
人の役に立ててもらうために論文を執筆します。

しかし、出した成果が本当に優れているかどうかは、
その道の専門家にしか判断できないので、
先に専門家にチェック(査読といいます)してもらって、
内容が認められた研究だけを学会に残すようにします。

そのため、学会に残った研究というのは、
専門家にも認められた内容になっているという点で
特に優れた研究だと言えるのです。

〜編集中〜

今回選んだ国際学会は
CVPRComputer Vision and Pattern Recognition)と呼ばれており、
※コンピュータビジョンとパターン認識の学会
主に画像や動画に映ったもの(物体や人物)を解析します。

JUVET
JUVET

CV は日本語に訳すのが難しく、
そのままコンピュータビジョンと
と表現します!


〜編集中〜

プログラミング言語はPythonを使う

Python公式HPのスクリーンショット

〜編集中〜

プログラミングといっても、
実はプログラミング言語には多くの種類があるので、
どの言語で AI を動かしたらいいか迷ってしまうかもしれませんね。

そこで私の方からオススメできるのが、
Python(パイソン) と呼ばれるプログラミング言語になります。

JUVET
JUVET

Python は読みやすく、
プログラミング初心者に優しい言語です!


なぜ Python が読みやすいのか、一言でいえば
そのように「開発されているから」に他なりません。

以下の文章は公式ページに書かれており、
「分かりやすさ」に対する自信の表れが読み取れるかと思います。


非常に分かりやすい文法を持ち合わせています。

Python とは何ですか?


ここでいう文法とは、Python のコードの書き方を示しており、
英語などの外国語を勉強するときのように、
決められた文法(ルール)で書かないといけない、ということなんですが、
そのルールが非常に分かりやすいということを意味します。

JUVET
JUVET

コードとは、Python の文法に基づいて書かれた
テキスト(PCへの命令文)のことです!

詳しいことは実際にプログラミングをしていく中で、
その都度、確認していくのでその時になったらまた解説します。

とにかく、Python はルールが分かりやすいので、
プログラミング初心者でも心配することなく、今日から始められます。

その理由の背景に。。。編集中


さっそくその準備に取りかかりましょう。

普通プログラミングをする場合、それに見合った環境を整えるのですが、
これがなかなかのくせもので、初学者は大抵ここでつまづいてしまいます。
そのため、ソフトなどのインストール過程はすっ飛ばしていこうと思います。

必要なものはブラウザ(Chrome推奨)とインターネット回線のみです。
まずはGoogleアカウントを作成して、Google Colaboratoryに接続していきます。
すでにアカウントをお持ちの場合は作成しなくてオーケーです。

JUVET
JUVET

Google Colaboratory(Colab)はブラウザでPythonが書ける便利なサービスです!

この言語を使ってAI を動かしていきます。

次にGoogle Colaboratoryに接続する

Colab


上記の画像のような画面が出てくると思いますので、
赤枠の「ドライブにコピー」をクリックしましょう。
これを行わないと、自分のドライブにデータが保存されませんのでご注意を。

すると以下の画像ように、
「最終保存:23:46」と保存した時間が表示され、
このノートブックがあなたのドライブに保存されます。
ノートブックとはプログラムを書くためのソフトのようなものです。

Colabのコピー

ここまでできたらあなたのGoogleアカウントで、
Colabノートブックを使用する準備ができました。

JUVET
JUVET

Colabノートブックはこれから実際にPythonを書いていくノートのことです!


これからノートブックにプログラムを書いていきますが、
そこに書かれたプログラムは実はあなたのPCで処理されるのではなく、
ブラウザを介してGoogle のPC(サーバー)で処理されることになります。

そのため、Googleのサーバーと
接続する必要があることは覚えておいてください。
※ 「接続」はクリックするだけで簡単にできます。

「別にプログラムを書くのに、Googleのサーバーを介さなくてもいいのではないか?」と
思われるかもしれませんが、
ご自身のPCでプログラミングの設定をするのは、実は結構大変なことで、
プログラムを書く環境を整える(環境構築といいます)だけで
丸一日潰れるといったことも起こり得ます。

ここでは、そういったストレスを減らすために Colabノートブックを使います。

JUVET
JUVET

Colabノートブックを使えば、すぐにプログラミングができるのです!

※まだ準備中のWEBアプリ開発コースでは、
ご自身のPCでプログラムを書く方法を解説する予定です

新しいノートブックを作成する

Googleアプリを開く


さっそくノートブックを作成していきます。

先ほどドライブにコピーしたノートブックを使用してもいいのですが、
せっかくなので新しいノートブックを作成してみましょう。
上記の画像のようにGoogleアカウントにログインした状態で、
赤枠のGoogleアプリを開きます。

ドライブを選択

とりあえずどんな手順でもいいのでドライブを開いてみましょう。
すると以下の画像のような画面が登場するはずです。

ご自身のドライブ上で「新規」をクリック

こちらの画面から Python を書くためのノートブックを作成していきます。
画面左上の「新規」をクリックします。

すると以下の画像のようにポップアップが出現しますので、
まずは「その他」を選択し、続いて「Google Colaboratory」を選択します。

その他→Google Colaboratoryでノートブックを作成します

これでノートブックが新規作成されます。

※ 上記の画像のように Google Colaboratory が表示されない場合は、
Colab ページにアクセスし、もう一度「ドライブにコピー」をクリックして、
ページを再読み込みしてみましょう。

ノートブックのタイトルを編集する

タイトルの編集

ノートブックを開きますと、
上記の画像のようにタイトルが未定(「Untitled0.ipynb」)になっています。
このままでもいいのですが、
タイトル未定のまま保存してしまいますと、
ドライブ内のノートブックが未定だらけになってしまい、
整理するのが大変になります。
はじめのうちからタイトルを付ける癖をつけておくとよいでしょう。

画面左上の「Untitled0.ipynb」をクリックするとタイトルの編集ができます。
ここでは「python」とつけることにします。
ちなみに拡張子の「.ipynb」は変更しないのが無難です。
これはpythonをブラウザで書けるようにするためのものなので、
ここを変更してしまうとファイルが正しく認識されない可能性があります。

実際にプログラミングしてみる

セルにプログラムを書く

ここまで来たら実際にプログラム(またはコード)を書き始めます。

上記の画像の赤枠はセルと呼ばれ、プログラムやテキストの記入欄となっています。
pythonのプログラムはここに書いていきます。

セルに以下のコードを書いてみましょう。
クオーテーション(’ ‘)を忘れずに書いてくださいね。
これは文章として読みたい文字を書くときに必ず必要になります(詳しくは次回解説します)。

print('Hello World!')


注意点として、必ず半角英数字のクオーテーションで記入することです。
これはプログラミングのルールで、基本的に英語で入力することになっています。

JUVET
JUVET

ルール1: プログラムは原則半角英数字で入力します!


上記のコードをセルに記入し、
キーボードの「 shift + Enter 」を同時に押します。

JUVET
JUVET

ここであなたのPCとGoogleのPCが接続されます!


すると、セルに書いたプログラムが実行されます。
プログラムの実行とは、書いたコード内容を実際に試すという意味で、
「 shift + Enter 」を押して初めて、
コンピュータへの命令として機能することになります。
※ セル左端にある再生ボタンでもプログラムの実行が可能。

実行後、以下の画像のように「Hello World!」が表示(出力)されます。

プログラミングの実行

無事「Hello World!」が表示されれば、
プログラミングは成功し、同時に下に新たなセルが出現します。
※ セルの左側にある再生ボタンを押した場合は新たなセルが出現しないので注意しましょう。

ちなみに上記の print(A) はAを出力するための命令プログラムです。
※ この print( ) に関しては「関数」で詳しく解説します。

JUVET
JUVET

print( )と書くことで、
かっこの中身を出力するように命令しているのです!


上記のコードはプログラミングの世界では、
はじめに実行するプログラムとして有名です。
Pythonとの対話が初めてという意味を込めて「Hello World!」なのです。

このように、簡単な文章を画面に出力するだけでも立派なプログラミングで、
あなたが書いたコードでPCを動かせたのです。
もう少し複雑なプログラミング(命令文)に関しては、
これから少しづつ学んでいきます。

エラーが出ても

print( ) のかっこを全角入力してしまった例

残念ながら「Hello World!」が表示されなかった場合には、
プログラムに何らかのエラーが含まれていた可能性があります。

例えば上記の画像では、
セルに全角入力してしまった場合に見られる構文エラーです。
構文エラーとは、
Pythonで決められた書き方(構文)になっていないということを教えてくれます。

誤って入力した部分は先ほどのコードのprint( )の最初のかっこです。
本来なら半角入力で「(」と入力すべきところを
「(」と全角で入力してしまったために起きたエラーです。
Pythonではエラーのことを例外と呼ぶので、これは用語として覚えましょう。

とにかく、決められた書き方をしないと、
プログラムはエラーを返すと理解しましょう。
その場合は上記の画像のように例外を返しますので、
落ち着いて対処するようにしましょう。

具体的に見ていきます。
今回出てきた例外は「SyntaxError: invalid character in identifier」です。

これは構文(Syntax)エラー(Error)のことで、
文字が無効もしくは不正であることを教えてくれています。

JUVET
JUVET

構文エラーが出たときはプログラムの書き方に誤りがあるということです!


このような例外が発生したときは、
出力された例外文(今回は「SyntaxError: invalid character in identifier」)をコピーし、
ググることです。これに尽きます。

それか例外文の下にあるリンク(SEARCH STACK OVERFLOW)をクリックし、
調べてみることです。
このサイトはプログラミング版の知恵袋だと思っていただけたら分かりやすいかと思います。

ノートブックの保存

ノートブックの保存

今回は本当に超入門なので、プログラミング自体はこのくらいにして、
書いたプログラムの保存方法を見ていきます。

画面左上の「ファイル」タブから「保存」を選択することで、
ドライブに(プログラムが書かれた)ノートブックを保存することができます。
※ ノートブックの内容は定期的に自動保存されますが、念のために。

すると以下のように「保存しました」と画面左下に表示されます。

保存の完了

接続を切る

セッションの管理を選択

先ほど説明したように、ノートブックはGoogleサーバーに接続した状態で使うので、
プログラミングが終わったら、「接続」は切るようにしましょう。

ノートブックを接続した状態でしばらく放置すると、この「接続」は勝手に切れますが、
今後使用するGPU版(ディープラーニング用の設定)でこれを行ってしまうと、
アクセス制限をかけられてしまいますので注意が必要です。

接続を切るには、上記画像のように、
画面上の「ランタイム」タブから「セッションの管理」を選択します。

すると以下のように「アクティブなセッション」が表示されます。
これは現在接続されているノートブックを表すもので、
プログラミングを終了するときはここから接続を切ります。

セッションの終了

すると以下のようにポップアップが出てくるので「終了」を選択します。
接続が切れると「アクティブなセッションがありません」と表示されます。


また保存されたノートブックは以下のように表示されているはずです。

ドライブに保存されたノートブックの表示

まとめ・クイズ

AIを学ぶために必要な最低限の準備をしてきました。
次は、今回作成したノートブックにプログラムを書くところからスタートです。

今回出てきた大事なことを以下にまとめます。

ルール1: プログラムは半角英数字で入力


最後に、本記事で理解してほしかったところはクイズとして出題します。
さっそく一問解いてみましょう。

先ほどのような例外文(SyntaxError: invalid character in identifier)が出てきた場合、
最初のうちは、その意味についてまったく理解できないと思いますが、
こういう時、どうするべきだったか覚えていますか?

エラー文が出てきた!どうしよう?
  • とりあえず待ってみる
  • つまらないからPCを切る
  • ネットで調べてみる
ネットで調べてみる
  • これが大事でした。

今回はこれだけ覚えておけばそれだけで十分です。
今後、プログラミングをしていく中でエラー文に必ず遭遇しますので、
その時はエラー文をコピー&ペーストで調べるようにしましょう。
大体のエラーは調べたらすぐに解決できます。


分からないことや上手くいかなかったことがあった場合には
下のコメント欄から質問していただけると
何かしらのアドバイスができるかもしれません。


【P.S.】
この記事が良いと思った場合には、
励みになりますので、ぜひSNSのフォローをお願いします 🙂

コメント

タイトルとURLをコピーしました