2018年04月16日
【Google Colaboratory版】PythonでAIプログラミングの作り方入門講座(Hello World〜じゃんけんAI乱数編)
キーワード
:Pythonプログラミング Google Colaboratory
Google ColaboratoryでPythonプログラミングを始めよう
【Google Colaboratory版】
PythonでゲームAIプログラミング入門
Hello World〜じゃんけんAI乱数 編(動画)
「 Google Colaboratory 」は、Pythonプログラミング初学者・入門者の方々にとって、比較的に導入時の失敗が少ないのではないかと感じましたので、「 Google Colaboratory 」の始め方について簡単にまとめた動画コンテンツを作成しました。
ディープラーニングをはじめとした、機械学習・人工知能(artificial intelligence:AI)・人工無脳(Artificial incompetence・Artificial Innocence:AI)などに関心のある方のはじめの一歩の参考になることがありましたら幸いです。
1.Google Colaboratoryとは?料金は?無料で使える?
2.ステップ2のサンプルコード.Hello Worldプログラミング
3.ステップ3・4のサンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
4.ステップ5のサンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
5.ステップ6のサンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版
動画は、Googleアカウントで、ログインした状態から解説していきます。
【 ColaboratoryでHello,world! 〜じゃんけんAIプログラミング】
・ステップ1(Python3を始めよう)
・ステップ2(Hello,worl!プログラミング)
・ステップ3(じゃんけんAI - 入力なし・勝ち負けの判定なし版)
・ステップ4(じゃんけんAI - 入力なし・勝ち負けの判定なし版)
・ステップ5(じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版)
・ステップ6(じゃんけんAI - 入力あり・勝ち負けの判定あり版)
人工知能・機械学習・ディープラーニング関連の専門書を学ぶ中で、数学の理論解説で、ギリシャ文字や数式の知識がわからない方もいるのではないかと思います。数学の入門コンテンツも作成していこうと思いますので、関心のある方は、ご活用いただけると幸いです。
:人工知能(AI)・機械学習プログラミング入門者のための数学入門講座(一覧へ)
[ PR:Udemy - 機械学習・人工知能・データ分析関連の動画教材探しに ]
:みんなのディープラーニング講座 ゼロからChainerとPythonで学ぶ深層学習の基礎
:みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
:【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
▲ この記事のトップへ
1.Google Colaboratoryとは?料金は?無料で使える?
【Google Colaboratory】
Googleアカウントを持っている方は、
「 Colaboratory 」
* Google提供の機械学習の教育や研究に利用できる研究ツール
無料で利用できる研究プロジェクト(2018年4月15日確認時時点)
をWebブラウザの環境で使えます。
Webブラウザ上で、Jupyter notebook を使うことができます。
キーワード
:Google Colaboratory
などで検索してみると、
「 Hello, Colaboratory - Colaboratory 」
というページがヒットするのではないかと思います。(2018年4月15日確認時点)
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
2.ステップ2のサンプルコード.Hello Worldプログラミング
▼▼▼ ステップ2のサンプルコード - はじめ ▼▼▼
print("Hello World")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 上記のプログラムのコード入力は、「 半角英数 」で行なっています。
実行してもエラーが出てしまう方は、再度確認して入力してみてください。
実行後、新たにコードを入力したい場合は、「 +:コード 」をクリックします。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
3.ステップ3・4のサンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
▼▼▼ ステップ3のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_ai 」という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
Pythonでプログラムコードを記述後に、プログラムを実行すると、コンピュータの出すじゃんけんの手が、自動的に表示されるプログラムです。
・ if〜elif:条件分岐
・ random:乱数値の生成
を活用して、プログラミングしています。
プログラムを簡単に説明すると「 0〜2 」の範囲で乱数を生成して、乱数で出力された数(値)が
・ 「 0 」の時は、「 じゃんけんAI:グーです。 」が表示されます。
・ 「 1 」の時は、「 じゃんけんAI:チョキです。 」が表示されます。
・ 「 2 」の時は、「 じゃんけんAI:パーです。 」が表示されます。
というようなニュアンスを、Pythonのプログラミング言語で記述しています。
ちなみに、「 random.randint(0,2) 」のコード記述をすることで「 0から2までの整数 」を生成しています。「 int 」は「 integer:整数型 」を表すようです。
その他の条件分岐の記述方法例としては、
「
elif janken_ai == 2:
」の部分を
「
else:
」と記述することもできるのではないかと思います。
「 else」を使う場合は、「 if 」「 elif 」の条件式に合わなかった数値が返された場合(生成された場合)の処理内容を表現することができます。上記のサンプルコードでは、乱数が「 0〜2 」の3パターンのみですので、じゃんけんAIの出力結果に、特徴を持たせることは難しいのですが、乱数の範囲を「 0〜5 」などと、6パターンにすると、「 else」を使うことで、じゃんけんAIのじゃんけんの手に、クセ(特徴)があるプログラムを作れるのではないかと思います。
興味のある方は、サンプルコードをいじりながら、色々と試してみてください。
例.「 パー 」を出しやすいじゃんけんAIプログラム
▼▼▼ ステップ4のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 5)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
実行した結果は、いかがでしたか?
ちょっとした工夫次第で、出す手に、特徴を持たせたじゃんけんAIを作ることができそうですね。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
4.ステップ5のサンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
▼▼▼ ステップ5のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけんAIと「じゃんけん」をしよう!")
input("「enter」キーを押してね。")
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
* Pythonのバージョンは3系で解説しています。
プログラムを実行し、「 enter 」キーを押すと、コンピュータの結果が出力されるように、プログラミングをしていきます。
今回は、「 input() 」を使ってキー入力後に、じゃんけんが実行されるプログラムです。
このプログラムに、特徴を持たせたい場合は、
:サンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
も参考にして、自分なりにアレンジしてみてください。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
5.ステップ6のサンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版
▼▼▼ ステップ6のサンプルコード - はじめ ▼▼▼
import random
janken_hand = ["グーです。","チョキです。","パーです。"]
print("じゃんけんAIと「じゃんけん」をしよう!")
print("\n0:グー\n1:チョキ\n2:パー")
my_janken = int(input("じゃんけんの手を決めてください。数値を入力後「enter」キーを押してね。:"))
janken_ai = random.randint(0, 2)
print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai])
hantei =(my_janken - janken_ai + 3) % 3
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_hand 」「 my_janken 」
「 janken_ai 」「 hantei 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
プログラムを実行し、指定したキー(今回は、0・1・2)のキーボード入力後に「 enter 」キーを押すと、コンピュータの結果と、勝ち負けの判定結果が出力されるように、プログラミングをしていきます。
今回は、「 グーです。」「 チョキです。」「 パーです。」
といった複数の値を1つの変数で管理するために
「 janken_hand = ["グーです。","チョキです。","パーです。"] 」のリスト(list)を作成しています。
ちなみに、リスト内の左から順番に「 0:グーです。 」「 1:チョキです。 」「 2:パーです。 」の数値に割り当てられています。
自分の手とじゃんけんAIのじゃんけんの手の文字表示では、
「 print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai]) 」
などで記述しているように、今までのサンプルコードとは違った方法での文字表示の方法も利用しています。
勝ち負けの判定では、
「 hantei =(my_janken - janken_ai + 3) % 3 」
の計算式で示したように、
{ 自分のじゃんけんの手(0〜2) ー じゃんけんAIの手(0〜2) + 3 }/ 3
の余りの数値によって、勝敗の結果を計算するようにしてあります。
「 0:あいこです。 」「 1:あなたの負けです。 」「 2:あなたの勝ちです。 」
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
C言語で、
じゃんけんプログラミング作成する方法も
まとめていますので
C言語でじゃんけんAI作成に関心のある方は、
ご活用ください。
乱数を活用した基本的な仕組みの
じゃんけんプログラミングをしたい方はこちら
:AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 乱数編)
二次元配列を活用して、
経験値を考慮したプログラムや、
思考パターンをプログラミングしてみたい方はこちら
:AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 2次元配列編)
[ スポンサードリンク ]
by はじめてのコンピュータ・パソコン
:AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧ページへ)
▲ 記事ページのトップへ
︎ サイトマップ
︎ プロフィール | サイトポリシー・免責事項など
︎ CONTENTS(コンテンツ)一覧
︎ 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧)
【このカテゴリーの最新記事】
posted by HajimeteCPC at 15:18
| AIエンジニア・プログラマー養成講座