colabでやってみたので、デモの一つ一つを解説したいと思います。https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynbそもそもTensorFlowって?TensorFlowとはGoogleがオープンソースで開発・公開している機械学習のためのライブラリです。2017年に公開されて以来、様々な場面で機械学習のために利用されてきました。Pythonという言語に対応しておりユーザーが多いこともあってTensorFlowは非常にユーザー数が多い機械学習ライブラリとなりました。今回2019年3月8日に新しいTensorFlow2.0のα版が公開されました。alphaが以下のサイトhttps://www.tensorflow.org/alphaで紹介されており、使い方やチュートリアルなどをみることが可能です。今回はこちらのサイトにあるビギナー向けのチュートリアルを機械学習ド素人の自分が実際にやってみました。今回のチュートリアルはGoogleColabのJupyterNotebookを用いることで自分のPCにも環境を構築する必要なく試せるので非エンジニアでも簡単に機械学習を体験できます。TensorFlowの読み込み最初にGoogleColabで検索し、GoogleColabへログインします。(Googleアカウントが必要です。)そして、PYTHON3の新しいノートブックを選びます。すると以下のような画面になります。このようになったら、まずTensorFlow2.0をブラウザ上の環境に読み込みます。tensorflow==2.0.0-alpha0こちらを、貼り付けて貼り付けた箱の左側にある再生ボタンを押してみましょう。コードが実行され、結果が出力されます。alphaが読み込まれているかを確認します。pltprint(tf.__version__)と入力し、出力してみると2.0.0-alpha0と出ます。alphaがインストールされているとのことです。World』みたいな時に使うようなデータベースとのことです。中身はこのような感じになっています。服や靴などの画像データがたくさん入っていますね。今回はこれらの画像データの判別を行います。fashion_mnist.load_data()TensorFlowはKerasという深層学習ライブラリを利用できます。その中にあるfashion_mnistというデータセットを読み込むようにと指示をしているのが上記のコードです。このコードを実行するとfashion_mnistの読み込みが始まります。このような状態になっていれば無事データセットを読み込めています。データセットの内容は60,000枚9種類の様々な服やサンダルの画像となっています。データセットを確認する読み込みが完了したら、データセットの中身を確認します。boot']こちらのコードを実行します。これは写真の分類の名前をモデルに定義しているコードになります。結果は出力されないので実行ボタンを押せばOKです。次に、このコードを読み込みます。28)という値が出力されます。これは60,000種類の画像があり一つ一つが28ピクセル四方だということを示しています。この段階では機械は60,000種類の写真をそれぞれ共通点を見出しておらず全く違う写真として認識しています。そのため、len(train_labels)と入力すると60,000種類の画像があるという意味の出力をします。train_labelsこちらのコードは出力すると、以下のような出力が返ってきます。dtype=uint8)これは、たくさんの種類の画像を機械が認識しているということを意味します。今回は、その中からtestという種別のデータセットを利用します。先ほどと全く同様にデータセットの中身を確認してみますと以下のようになります。意味は、先ほどと同様の読み方で10,000種類10,000枚の28×28ピクセルの画像がデータとして読み込まれていることになります。データの前処理さて、ここまできたら実際に機械に学習をさせていきましょう。plt.figure()plt.imshow(train_images[0])plt.colorbar()plt.grid(False)plt.show()こちらのコードを読み込みます。すると、以下の画像のようにグラフのようになったピクセル画像が表示されます。この処理は色が濃いところをピクセル単位で確認している処理になります。どのピクセルがどれだけ黒っぽいのか?これを基準に画像を判別するのです。このグレースケールになっている部分、機械側は255段階のグレースケールで分類しています。この値を計算上0~1にしたいため255で割ってあげます。255.0結果は出力されない状態で大丈夫です。ここで、最初の25枚のデータを確認しクラス名を確認します。ここでデータが正しいかどうかを確認します。ここまでくればデータの準備は完了です。モデルを作るニューラルネットワークの基礎は『レイヤー』と言われるものです。レイヤーは一つの入力されたデータを処理し出力に変換・表現する一単位です。これを多層に重ねることによってニューラルネットワークは作られています。activation='softmax')])こちらのコードにでkeras.layers.Flattenというのが今回の最初のレイヤーです。(カッコの中は読み込む画像についての設定を行なっている値です。)このレイヤーでは2次元の画像データを一次元のデータに落とし込んでいます。ピクセルが縦横に並んでいるものを横一列に変換したのです。その後、tf.keras.layers.Denseで脳神経と同じ処理を行います。カッコの中で処理の回数と種類を設定していますが、今回は内容が難しくなるので割愛させて頂きます。学習の前にモデルに追加するものが三つありますので、以下のコードで追加します。モデルの正確性を測定します。モデルのトレーニング状態を監視してエラーを検知します。上記のコードでこれらの仕組みとその仕組みの種類を指定しているのです。モデルを学習させるいよいよ、作成したモデルを学習させます。epochs=5)このコードを打ち込むことでモデルの学習を開始できます。コード中のカッコ内では関連づけるデータセットを指定し、学習のシリーズ回数を設定します。学習が完了すると以上のような出力があります。右端に学習した際のデータの正確性が記載されており、学習のシリーズが上がるに連れて正確性も上がっているのが確認できます。正確性を確かめる実際に判別する前にモデルが使えるか?正確性をチェックします。test_acc)こちらのコードを実行するとAccuracyがパーセンテージで表示されます。実際に判別させてみる。ここまできたら最後に実際に判別を行ってみましょう。plt.imshow(train_images[0])このコードで一番最初にセットされているイメージデータが表示できます。この場合は靴のようですね。こちらの靴を見分けられるかテストします。model.predict(test_images)を実行したのちにpredictions[0]を実行します。すると、文字列が出てきます。この文字列は各種別に対するAIの確からしさです。bootsの可能性が最も高いということを数値的に示しているのです。これ、わかりづらいですよね?こちらのコードを記述してみましょう。np.argmax(predictions_array)thisplot[predicted_label].set_color('red')thisplot[true_label].set_color('blue')これを実行したら、次に以下のコードを記述・実行します。test_labels)plt.show()すると以下のように各種の可能性のグラフが表示されます。右のグラフは、可能性の数値を表しています。boot’となっています。まとめいかがでしたでしょうか?意外と簡単に機械学習を実装することができたかと思います。機械学習についてはライブラリが準備されたりGoogleColabみたいな簡単なお試し環境などもあり非エンジニアでも検索しながら試しに触ってみるということができるようになってきています。今回はTesorFlow2.0Alphaが公開されたのでちょうどいい機会として取り組んでみましたが、この内容はGoogleが公式にビギナー向けのチュートリアルとして開設とともに公開している内容です。エンジニアの世界の一端を覗くためにもぜひこのようなチュートリアルをお試しすることをお勧めします!この記事をシェアするLINE記事の内容等について改善箇所などございましたら、お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。在学する、大学四年生。趣味はスノボとサッカー・テニス・ブログ執筆。大学でTEDxKeioUSFCを開催したり、研究で乳児便の画像認識とライフログ作成を行ったりしている。多くの会社がAIの導入を目的化してしまっているなどの問題意識からAIをもっと身近にというコンセプトのAI-SCHOLARに参画。記事執筆・メルマガなどを担当。個人でもブログを執筆している。ツリー構造のリカレントニューラルネットワ...ICLR2019が開催されました。4株価チャートを画像データとして学習させる深層学習による株式市...深層学習を用いた株価の予測に関する新しい論文が発表されました。お取り扱いについて株式会社wevnal(以下「当社」といいます。)は、AI-SCHOLAR(以下「本サイト」といいます。)をご利用になる方(以下「ユーザー」といいます。)を遵守すると共に、以下のプライバシーポリシー(以下「本プライバシーポリシー」といいます。)に従い、適切に取り扱うものとします。本プライバシーポリシーにおいて、個人情報とは、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの(他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含みます。)を意味するものとします。当社は、ユーザーの個人情報を、以下の目的で利用いたします。当社は、ユーザーの同意を得て、以下の提供先に、以下の提供情報内容を以下の手段又は方法で提供することがあります。(1)提供先について登録ユーザーが本サイトにおいて資料の請求、閲覧もしくはダウンロードする場合、その資料の提供元である本サイト掲載企業(当該提供元企業から委託を受けた者を含みます。所属企業ではなく、企業に所属する個人が提供元である場合もあります。)に、以下の情報が提供されます。電磁的な方法による送信また、次に掲げる場合は、関係法令に反しない範囲で、ユーザーの同意なく個人情報を第三者に提供することがあります。一部または全部を外部委託することがあります。委託先における個人情報の取扱いについては当社が責任を負います。当社は、個人を特定できないよう加工した統計データを作成することがあります。当社は、統計データを何ら制限なく利用することができるものとします。して、ユーザーご本人に限り、個人情報の開示、訂正、追加または削除、利用停止、ならびに第三者への提供の停止(以下「個人情報の開示等」といいます)を求めることができるものとします。以下の場合は個人情報の変更等に応じないことがあります。他の法令に違反することとなる場合また、当該個人情報の変更等に多額の費用を要する場合、その他の、個人情報の開示等を行うことが困難な場合であって、ユーザーの権利・利益を保護するため必要なこれに代わるべき措置をとるときは、個人情報の変更等に応じないことがあります。当社サービスは、Cookie及びこれに類する技術を利用することがあります。これらの技術は、当社による当社サービスの利用状況等の把握に役立ち、サービス向上に資するものです。Cookieを無効化されたいユーザーは、ウェブブラウザの設定を変更することによりCookieを無効化することができます。Cookieを無効化すると、当社サービスの一部の機能をご利用いただけなくなる場合があります。当社は、法令等の定めがある場合を除き、必要に応じて、本プライバシーポリシーを変更することができるものとします。プライバシーマークに関して当社は、プライバシーマークの認証を取得しています。パスワードをお忘れの。