情報技術科 No.41 森田大暉
①研究の背景
もともと最先端の情報技術に興味があり、その中でも特に関心が強かった人工知能を実際に作成してみたいと思ったのが、課題研究のスタートです。
②仮説とねらい
人工知能は膨大なデータに基づく判断を行うことができます。
これにより、通常のプログラムより高精度の画像認識を行うことができるはずです。
③研究内容
人工知能を実装するためのアルゴリズム、ディープラーニングについて研究し、成果物としてディープラーニングを用いて人工知能を作成することが課題研究です。
④技術的知識
使用言語:python3
使用環境:Anaconda、Visual Studio Code
参考文献
ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装 斎藤 康毅
HOME
⑤取り組んだこと
・ディープラーニングについて学習
ニューラルネットワーク
人工知能を実装する手法の一つで人間の脳の構造を数式的に表現したもの
入力層・出力層・隠れ層(中間層)の三つの層から構成されている
層と層の間につながりの強さを示す重みがある
ディープラーニング
ニューラルネットワークを発展させた手法で隠れ層が複数になっている。
隠れ層を複数にすることでニューラルネットワークより高精度の認識能力をもつ
データが増えていくにつれ、精度が向上する
様々なネットワークモデルがある(畳み込みニューラルネットワーク、敵対的生成ネットワークなど)
畳み込みニューラルネットワーク(CNN)
ニューラルネットワークの一つ
通常のニューラルネットワークでは入出力のデータを3次元のデータとしてそのまま扱える
ニューラルネットワークでは全結合層が全層で処理をしていたが、畳み込みニューラルネットワークでは出力層や出力に近い層、一次元のデータとして処理していく層でのみ全結合層が使われている。入力層や出力層に近くない隠れ層では3次元のデータを扱うために全結合層ではなく畳み込み層やプーリング層が使われている。
ニューラルネットワークとCNNの構成の違い
・ディープなCNN(隠れ層が多層あるCNN)のプログラム作成
今回のネットワークの構成
畳み込み層:単純型細胞をモデルにしたもの。データによる学習時に自動調整される特定の形状に反応するように構成。
活性化関数:入力の総和を出力に変換する関数(画像ではy)
バイアス:活性化関数の出力を調整する要素
プーリング層:複雑型細胞をモデルにしたもの。入力画像におけるフィルタ形状の位置ずれを吸収する。
全結合層:すべての入力値からすべての出力への結合をする層。2次元以上のデータを一次元のデータにする。
出力層:入力された値を正規化して出力する。このとき出力は0から1.0までの値をとり、総和は1。
ドロップアウト層:過学習を抑制する役割。ニューロンをランダムに消去しながら学習する。
※過学習:学習データだけに最適化され汎用性がない状態
⑥結果
ディープラーニング及び人工知能についての理解が増した。
プログラムはできたものの、学習データを集めることができずモデルとして完成させることができなかった。
⑦感想・考察
当初は画像認識で犬の判別をしたいと思っていたが、時間管理が甘く達成させることができなかった。また、プログラムを作るのに時間がかかりすぎて学習データが集めれなかったため、プログラムと並行して集めていきたかった。
時間管理や見通しをしっかりとした上で作業をしなければならないと思った。この経験を忘れずに今後の自分に反映できるよう努力する。