【授業☆しょ~かい】『パーセプトロン』の解析と複数個の『パーセプトロン』でXORゲートを再現!(後編) 電子技術科(都留キャンパス)No.456

2021年09月10日

令和3年8月24日(月)『前編』:
こんにちは。あんどくんです。
電子技術科をPRしているよ☆彡
みんな、令和3年もリアルに応援よろしくね (`・ω・´)ノ
産短大は、前期授業がスタートして19週目なんだよ。
今日、令和3年8月23日(月)の『後編』では、3,4限におじゃました1,2年生の『プログラミング演習』の後半について紹介するよ。

この授業では、いま世界中が注目している最新のプログラミング言語『パイソン』によるプログラミングを、『ドローン』や『ロボット』などをリアルにプログラム制御しながら学んでいるんだよ。
昨年は『ドローン』を制御したんだよ。で、今年は戦車型ロボット『オムニ・ローバー』を制御しているんだ。これまでに『オムニ・ローバー』を製作して、『パイソン言語』の文法についてひととおり体験したんだ。で、いまは『パイソン言語』の文法を一から本格的に学んでいるんだよ。1年生の目標はプログラミングを体験することで、2年生は文法を習得することだよ。

令和3年8月23日(月)の『後編』では、『非線形分離問題』としてXOR (eXclusive OR:排他的論理和) ゲートのふるまいが複数個の『パーセプトロン』で再現できることを示していくよ。

はじめに1個の『パーセプトロン』で、XOR (eXclusive OR:排他的論理和) ゲートのふるまいを再現するプログラムをつくることになったんだよ。XORゲート真理値表は、下の写真のとおりだよ。XORゲートでは二つの入力が異なるときに出力 y が 1 になって、同じときときには 0 になるんだ。なので XORゲートのことを『不一致回路』っていうんだよ。

 

グラフを描いて、座標 (x1,  x2) に出力 y の状態を描くと、下の写真のようになるんだ。出力 y が 1 のときには『黒丸』で、出力 y が 0 のときには『白丸』でに注意すると、黒丸』と『白丸』の領域を、直線をつかって分離できないことがわかるね。なのでXORゲートのふるまいを1個の『パーセプトロン』では再現できないんだよ。
この問題は、直線で『黒丸』と『白丸』の領域を分離できないけど、曲線をつかえば分離できるんで『非線形分離問題』っていうんんだ。非線形分離問題』では、1個の『パーセプトロン』では再現できないんだけど、もしかしたら複数個の『パーセプトロン』で再現できるかもしれないんだよ・・・

 

ここで『デジタル電子回路』でよく知られているよに、XORゲートは、基本ゲートであるNANDゲートORゲートANDゲートをつかって下の写真のように表すことができるんだ。

 

このことを、NANDゲートORゲートANDゲートの出力をそれぞれ S1、S2、Yとおいて真理値表をかいて確かめたんだよ。そしたら上の写真のように、真理値表がXORゲートの真理値表に一致したよ。なので、NANDゲートORゲートANDゲートをつかってXORゲートを表せることが確認できたよ。

 

これらの3個のゲートについては、それぞれ1個の『パーセプトロン』で再現できることを示してあるんで・・・
3個のゲートをそれぞれ対応する『パーセプトロン』で置き換えてみると・・・

下の写真の右側みたいになるんだよ。このことをプログラムコードで表せば、XORゲートのふるまいを、3個の『パーセプトロン』で再現するプログラムができそうだね。

 

これまでに定義した NAND ( ) 関数、OR ( ) 関数、AND ( ) 関数をつかって、XORゲートのふるまいを再現する XOR ( ) 関数を、つぎのように定義したんだよ。

def XOR (x1, x2):
     s1 = NAND (x1, x2)
     s2 = OR (x1, x2)
     y = AND (s1, s2)

     return y

 

さっそくプログラムコードを入力して実行してみると・・・
XORゲートのふるまいを3個の『パーセプトロン』で再現できていることが確認できたんだよ。

こんな風に1個の『パーセプトロン』をつかって再現できなくても、複数個の『パーセプトロン』をつかって再現できるんだよ。『AI』に関するプログラミングはここまでだよ。

 

ここからは『AI』の『画像認識』でつかう『カラーボード』をつくったんだよ。

青色緑色の2種類のボードをつくることになったんだ。

 

定規カッターをつかって、ていねいに切り出したんだ。

 

カラーボード』が完成したところで、さっそく『画像認識』のサンプルプログラムを動かしてみることになったんだ。このサンプルプログラムでは、Webカメラの画像を取り込んで、その画像から青色の部分を抽出することができるんだよ。
さっそくプログラムを実行して、下の写真みたいに青色の『カラーボード』を『オムニ・ローバー』に搭載したWebカメラの前で、動かしてみたんだ。

 

その結果が下の写真だよ。下の写真の左側が、Webカメラによる元画像で、右側が青色の部分を認識した抽出画像だよ。青色以外の部分は黒色になっているのがわかるね。また、青色の部分のピクセル数も表示されているんだよ。

 

つぎに青色の『カラーボード』をWebカメラの前から取り除いたんだよ。下の写真の左側のように、元画像の実験室内には青色の部分がほとんどないんで、右側のように、ほとんど黒色になっているんだよ。また 「何か青色のモノを置いて」っていうメッセージも表示されているね。

 

ここで南湖 准教授がサンプルプログラムの内容について解説したんだよ。
このプログラムでは『Open CV (Open Source Computer Vision Library:オープン・ソース・コンピュータ・ヴィジョン・ライブラリ)』っていうフリーのライブラリをつかって、青色の部分を認識して抽出しているんだよ。

というわけで今回はここまで。

 

時間なんで『電車』で帰るよ ≡3
文大前駅』から『大月駅』までは『特急 富士回遊号』に乗車して、『大月駅』から『甲府駅』までは『211系』に乗車して帰ったんだよ。

みんな、今日も1日おつかれさま☆彡
次回も『AI』のプログラムをつくりながら『AI』について学んでいく予定だよ。
今日も『産短大の毎日』をみてくれてありがとう!
また、明日からがんばろっ٩( ‘ω’ )و

それじゃ≡3 ≡3 ≡3

★バックナンバー★

2020年度
電子工学の理論を学ぶ授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=15087
最新の電子技術 (IoT) を学ぶ授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=15051
最新の電子技術 (パイソン言語) を学ぶ授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=15018
就活準備の授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=15076

2019年度
電子工学の理論を学ぶ授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=9556
最新の電子技術 (IoT) を学ぶ授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=9534
就活準備の授業・・・https://www.yitjc.ac.jp/yitjc/blog/?p=9604

★学生募集中★

県内イチ♪ 最新の設備と最高のスタッフで、みなさんをお待ちしています♪ 2年間で電子工学の理論を学んで、最新の電子技術を身に付けるんだったら、『電子技術科☆都留キャンパス』で決まりだね!
詳細はお問い合わせください。

★お問い合わせ先★

山梨県立産業技術短期大学校 都留キャンパス
〒402-0053 山梨県都留市上谷5-7-35
TEL 0554-43-8911(代)