GoogleAIの勉強:4時間目「損失を減らす」②
4時間目「損失を減らす」の続きを始めていきましょう。 数学が苦手な人だと見たくなくなりそうなグラフとか数式が出てきますが、できるだけ「文系でもわかる」ように説明していきたいと思いますので、お付き合いください。 前回から損失を少なくするための方法を勉強しています。 (この灰色のラインの損失が一番少ないので、灰色の線の傾きを導けるようになれれば良い) 損失を少なくするためにはこの灰色の線の「傾き」を探らないといけないわけです。その方法の一つが「反復的アプローチ」です。機械学習においては一般的のようですが「場数を踏んで学習」していく感じです。では、どんなことをするのか詳しくみていきましょう。
続きを読むGoogleAIの勉強:4時間目「損失を減らす」①
今回のGoogleAI講座は少し長いので、何回かに分けて見ていきたいと思います。テーマは「損失を減らす」期待値と実際の値の差が損失でしたがコレを少なくするのが今回の講座の目的のようです。
そのために必要なのが「モデルの訓練」であり、その良い方法は「反復アプローチ」なんです。
講座の概略
損失と傾きの関係をまずは押さえておきます。 まずはわかりやすくするために下の図を見てみましょう
なんかいろいろ書いてありますが、一つずつ見ていきましょう。 今回用に適当に作ったグラフですがまずは、XとYの関連を見てみます
なんとなくYが増えればXも増えるのはわかりますよね。ではXが「3.5」の場合にYはいくつになるのでしょう。これを予測したいとします。
続きを読むGoogleAIの勉強:3時間目「MLへの降順」
GoogleAIの勉強も3時間目になりました。今回のタイトルは「MLへの降順」ということで「線形回帰」についても学ぶうです。
線形回帰は、一組の点に最もよく合う直線または超平面を見つける方法です。このモジュールは、線形回帰への機械学習アプローチの基礎を築く前に、線形回帰を直感的に調べます。
MLへの降順
出典:https://developers.google.com/machine-learning/crash-course/descending-into-ml/video-lecture |
出典:https://developers.google.com/machine-learning/crash-course/descending-into-ml/linear-regression |
出典:https://developers.google.com/machine-learning/crash-course/descending-into-ml/linear-regression |
訓練と喪失
出典:https://developers.google.com/machine-learning/crash-course/descending-into-ml/training-and-loss |
トレーニング
出典:https://developers.google.com/machine-learning/crash-course/descending-into-ml/check-your-understanding |
問題
平均二乗誤差(MSE)が高いのは左右どちらのグラフか?答え:
GoogleAIの勉強:2時間目「フレーミング」
次は「フレーミング」です。こちらもビデオが用意されているので早速見てみましょう。
出典:https://developers.google.com/machine-learning/crash-course/framing/ml-terminology |
動画の中身も日本語になるなんて、やっぱりGoogle翻訳すごいです。こちらの動画も1分40秒ほどとなっているので気合をいれて聞いていきます。 ここで扱われている例は迷惑メール。これを自動的に受信ホルダーに入れるか迷惑フォルダーに入れるかを判断するために、差出人やらヘッダー情報やらを参照するわけですが、まずは、どういうのが迷惑メールでどういうのが違うのかをデータから学習して予測していくことが機械学習の大枠ということみたいです。
MLの用語
械学習とは何ですか?MLシステムは、入力を結合して前に見たことのないデータに有用な予測を生成する方法
と、いうわけで機械学習を学習していく上で大切な用語があるようです。
ラベル
ラベルは「コレならコレ」という単純なもので、絵の中の動物の種類などが当てはまります。これをyとします
特徴
単純な機械学習プログラムであれば「コレならコレ」という単一ですが、高貴な(?)機械学習機能だと「コレとコレとコレがコウならコレ」のような数百万の機能を使用できます。 例えば、迷惑メールを判別するときも「本文・アドレス・送信時刻・迷惑メール特有のフレーズ」から「コレは迷惑メールだ!」と判断できるような感じです。
続きを読むGoogleAIの勉強:1時間目「機械学習入門」
さて「初心者」を宣言し、さっそく講座を進めてみたいと思います。前回選択した「私は何も知らない初心者ですボタン」翻訳していないものは次の感じです。
出典:https://developers.google.com/machine-learning/crash-course/ |
出典:https://developers.google.com/machine-learning/crash-course/ |
機械学習入門
(出典:https://developers.google.com/machine-learning/crash-course/ml-intro) |
- 3分
- マシン学習をマスターすることの実際的な利点を認識する
- 機械学習の哲学を理解する
(出典:https://developers.google.com/machine-learning/crash-course/ml-intro) |
0:00 Machine Learning Crash Courseへようこそ。 0:03 私の名前はPeter Norvigです。私が2001年にGoogleに加わったとき、 0:07 私のタイトルは "Machine Learningのディレクター" 0:10 なぜなら私はMachine Learningが貴重なツールになることを知っていたからです 0:13 エンジニア、Google、その他のあらゆる場所で、 0:15 彼らのデータを理解する。 0:17 私は、ツールがどのくらい普及するのか、まったく予想していませんでした。 0:21 それらを使用することに熟練しているエンジニアにとってどれくらいの需要があるのかを示します。 0:25 このコースはあなたをパスに沿って設定するように設計されています 0:28 当業者に熟練した者になることを意味する。 0:31 ここで学ぶものは、ソフトウェアエンジニアとして、 0:35 3つのことをより良くする。 0:37 まず、プログラミングに費やす時間を短縮するツールを提供します。 0:41 私がスペルミスを修正するプログラムを書こうとしていたとします。 0:45 私は多くの例と経験則を通って自分の道を作ることができました。 0:48 Cの後を除いてEの前のIのように、 0:51 数週間の勤勉さの後、合理的なプログラムが思い付きます。 0:54 あるいは、私は既製の機械学習ツールを使用して、いくつかの例を与えたり、 0:59 時間のごく一部でより信頼性の高いプログラムを得ることができます。 1:03 第二に、それはあなたの製品をカスタマイズすることができます、 1:06 特定のグループの人々にとってより良いものにします。 1:09 手書きでコードを書くことによって私の英語のスペルチェッカーを作ったとしましょう。 1:14 それはとても成功して、私はバージョンを持っていたい 1:17 最も人気のある100の言語で 1:19 私は、各言語ごとにゼロからほとんど始める必要があります。 1:22 それは何年もの努力を要するだろう。 1:24 しかし、機械学習を使ってそれを構築した後、別の言語に移行すると、 1:28 最初の近似までは、単にデータを収集することを意味します 1:31 その言語でそれを正確に同じ機械学習モデルに供給することです。 1:36 第3に、機械学習は、プログラマとしてのあなたの問題を解決することができます。 1:41 手でやる方法がわからない。 1:44 人間として、私は自分の友人のことを認識する能力があります。 1:47 彼らの発言を理解し、理解するが、私はこれをすべて無意識に行う 1:51 あなたが私にそれを行うプログラムを書くように頼んだら、 1:54 私は完全に戸惑うだろう。 1:56 しかし、これらは機械学習アルゴリズムが非常にうまくいくタスクです。 1:59 私は何をすべきかをアルゴリズムに伝える必要はありません。 2:02 アルゴリズムの例がたくさんあり、そこからタスクを解決することができます。 2:07 今、機械学習をマスターするためのこれら3つの実用的な理由に加えて、 2:12 哲学的な理由があります。 2:15 機械学習は、あなたが問題について考える方法を変えます。 2:18 ソフトウェアエンジニアは、論理的かつ数学的に考えるように訓練されています。 2:22 アサーションを使用して、プログラムのプロパティが正しいことを証明します。 2:27 機械学習では、焦点は数学からシフトする 2:31 自然科学へ:私たちは、不確実な世界についての観測を行い、 2:35 実験を実行したり、論理ではなく統計を使用して、 2:39 実験の結果を分析する。 2:42 科学者のように考える能力は、あなたの視野を広げるでしょう 2:46 あなたがそれなしで探索することができなかった新しい領域を開く。 2:50 だから旅を楽しみ、幸せな探検。 (出典:https://developers.google.com/machine-learning/crash-course/ml-intro)
GoogleAIの勉強:コース選択
GoogleAIのオープニングも読み終えたところで、さっそく「Machine Learning Crash Course」からAIの勉強をすすめていきたいと思います。
出典:Machine Learning Crash Course |
VIEW PREREQUISITES
出典:Machine Learning Crash Course |
前提条件とプレワークマシンラーニングクラッシュコースはあなたのために適切ですか?
- 私は、機械学習の背景がほとんどまたはまったくありません。
- 私は機械学習の背景を持っていますが、私はもっと最新かつ完全な理解をしたいと思います。
マシンラーニングクラッシュコースを開始する前に、次の前提条件とプレワークセクションを読んで、すべてのモジュールを修了する準備が整ったことを確認してください。 前提条件機械学習クラッシュコースは、機械学習における事前知識を前提としていません。ただし、提示された概念を理解し、練習を完了するためには、以下の前提条件を満たすことをお勧めします。 イントロレベル代数のマスター。変数や係数、線形方程式、関数のグラフ、ヒストグラムに慣れている必要があります。(対数や微分などの高度な数学の概念に精通していることは役に立ちますが、必須ではありません)。 プログラミングの基礎知識とPythonでのコーディング経験 Machine Learningクラッシュコースのプログラミング演習は、TensorFlowを使用してPythonでコーディングされてい ます。これまでのTensorFlowの経験は必要ありませんが、関数定義/呼び出し、リストと辞書、ループ、条件式などの基本的なプログラミング構造を含むPythonコードの読み書きは快適です。 注:参照の主要な概念とツールごとの基準材料で、機械学習のクラッシュコースで使用される数学やプログラミングの概念の詳細なリストについては、以下のセクションを。プレワークプログラミング演習は、Colaboratory プラットフォームを使用して、ブラウザで直接実行されます(設定は不要です)。Colaboratoryはほとんどの主要なブラウザでサポートされており、ChromeとFirefoxのデスクトップ版で最も完全にテストされています。エクササイズをオフラインでダウンロードして実行する場合は、ローカル環境を設定する手順を参照してください 。 パンダ入門機械学習クラッシュコースのプログラミング演習では、 データセットを操作するためにパンダライブラリを使用します。あなたがパンダに精通していない場合 は、演習で使用された主要なパンダの特徴を示すパンダチュートリアルのクイック入門を完了することをお勧めします。 低レベルのTensorFlowの基礎Machine Learning Crash Courseのプログラミング演習では、TensorFlowの高レベル tf.estimator APIを使用してモデルを構成します。最初からTensorFlowモデルを作成する場合は、次のチュートリアルを完了してください。 TensorFlow Hello World:低レベルのTensorFlowでコード化された「Hello World」。 TensorFlowプログラミングコンセプト:TensorFlowアプリケーションの基本コンポーネント(テンソル、演算、グラフ、およびセッション)のウォークスルー。 テンソルの 作成と操作:テンソルの簡単な入門:TensorFlowプログラミングの中心的な抽象化。また、線形代数における行列の加算と乗算についてのリフレッシャーを提供します。 主な概念とツール機械学習クラッシュコースでは、以下の概念とツールについて説明し、適用します。詳細については、リンクされたリソースを参照してください。
- 私は機械学習を本当にうまく理解していますが、私はTensorFlowについてほとんどまたは全く知りません。
次のPythonの基礎については、「The Python Tutorial」を参照してください。
- 数学
- 代数
- 変数、 係数、関数
- 線形方程式のような
- 対数、対数方程式など
- シグモイド関数
- 線形代数
- テンソルとテンソルのランク
- 行列乗算
- 三角法
- Tanh(活性化関数として議論され、 事前知識は必要ありません)
- 統計
- 平均値、中央値、異常値、および標準偏差
- ヒストグラムを読む能力
- 微積分(高度なトピックの場合はオプション)
- デリバティブの概念 (実際にデリバティブを計算する必要はありません)
- 勾配 または勾配
- 部分派生 (勾配に密接に関連している)
- チェーンルール ( ニューラルネットワークをトレーニングするためのバックプロパゲーションアルゴリズムの完全な理解のため)
- Pythonプログラミング
- 基本的なPython
pass声明 中間Python 次のより高度なPythonの機能については、 The Python Tutorialも参照してください。
- 位置パラメータとキーワードパラメータを使用して、関数を定義して呼び出す
- 辞書、 リスト、 セット(作成、アクセス、反復)
- forループは、 for複数のイテレータ変数(例えば、とループfor a, b in [(1,2), (3,4)])
- if/else条件ブロックと 条件式
- 文字列フォーマット (例えば、'%.2f' % 3.14)
- 変数、代入、基本データ型 (int、float、bool、str)
サードパーティのPythonライブラリ機械学習クラッシュコースコードの例では、サードパーティライブラリの次の機能を使用しています。これらのライブラリに事前に精通している必要はありません。必要なときに知る必要があるものを探すことができます。
- リスト内包
- ラムダ関数
ローカルマシンまたはクラウドコンソールでプログラミング演習を実行するには、コマンドラインでの作業が快適である必要があります。 (出典:Machine Learning Crash Course(翻訳))
- Matplotlib(データ視覚化用)
- pyplot モジュール
- cm モジュール
- gridspec モジュール
- シーボーン(ヒートマップ用)
- heatmap 関数
- パンダ(データ操作用)
- DataFrame クラス
- NumPy(低レベルの数学演算の場合)
- linspace 関数
- random 関数
- array 関数
- arange 関数
- scikit-learn(評価指標用)
- メトリックモジュール
- Bashターミナル/クラウドコンソール
- 少しはプログラミング経験があった方が良いよ。
- TensorFlowというものを使うよ
- Colaboratoryを使うけど、ブラウザで動くから大丈夫だよ
私は、機械学習の背景がほとんどまたはまったくありません。
出典:Machine Learning Crash Course(翻訳) |
GoogleAIの勉強:オリエンテーション
最近何かと話題のAIですが、なんでもGoogleがAIを無料で学べるプログラムを公開したということなので、ちょっと覗いてきました。
Learn with Google AI
最初に見るのは「Learn with Google AI」というサイト。もちろん全て英語です。ここで英語のわかるライターがいればきいの代筆を頼みたいところですが、そんなものは無いので(むしろ、こういうことをAIにやってもらいたい・・・)Google Chromeの翻訳の助けを借ります。
出典:Learn with Google AI |
最近の翻訳は優秀なので、中学生レベルの英語しかわからなくてもなんとかなりますね。
Google AIで学ぶ:誰にでもML教育を利用可能にする 大学では、オイルリグで地球物理学インターンシップをしながら、ソフトウェアが未来であることを認識したので、私は専攻をコンピュータサイエンスに切り替えました。Googleで働いていた10年以上もして、私はAIがコンピュータサイエンスの未来であることに気がついたのと同じような瞬間がありました。今日、私は、AIとその利益をすべての人が利用できるようにするために、Googleの機械学習教育の取り組みをリードしています。AIは複雑な問題を解決することができ、産業全体を変革する可能性があります。つまり、AIは多様な人間の視点とニーズを反映することが重要です。そのため、Google AIの使命の一部は、研究者、開発者や企業、Abuなどの学生に、機械学習に興味のある人が成功するのを支援することです。AIが難しい問題を解決する方法を皆が理解できるように、私たちはLearn with Google AIというリソースを作成しました。このサイトでは、MLの基本概念を学び、MLのスキルを開発し、実践し、実世界の問題にMLを適用する方法を提供しています。高度なチュートリアルやTensorFlowの資料を探している深い学習の専門家から、AIで最初のステップを踏みたい "好奇心の猫"まで、GoogleのMLエキスパートから教育コンテンツを探している人は誰でもここで見つけることができます。Google AIで学ぶには、機械学習クラッシュコース(MLCC)という新しい無料コースもあります。このコースでは、エクササイズ、インタラクティブなビジュアライゼーション、およびインストラクションビデオを提供し、誰でもMLコンセプトを学び実践することができます。Googleのエンジニアリング教育チームは、当初、この急速に進歩した、Google社のMLファンダメンタルズの実用的な導入を開発しました。これまでに、18,000人以上のGoogle社員がMLCCに参加し、デイドリームデバイスのカメラキャリブレーションを強化し、Google Earthのバーチャルリアリティを構築し、YouTubeのストリーミング品質を改善するコースからのレッスンを受けました。GoogleのMLCCの成功は、誰もが利用できるようになるよう促しました。追加のコースやドキュメントを含むLearn with Google AIの方が多くあります。皆さんがAIについてもっと学ぶのを楽しみにしています。(出典:Learn with Google AI(翻訳))
- AIって便利だけど難しいね
- だから勉強ツール作ったよ
- 頑張って勉強してね
機械学習クラッシュコース(MLCC)
出典:機械学習クラッシュコース(MLCC) |
機械学習クラッシュコースTensorFlow APIを使用する マシン学習のためのGoogleのペースの速い、実用的な紹介意欲的な機械学習の実践者のための自習ガイド 機械学習クラッシュコースでは、ビデオ講義、実世界のケーススタディ、および実践演習を含む一連のレッスンを提供しています。 (中略) 機械学習の練習を始める準備ができましたか? クラッシュコースでの基本的な機械学習の概念を学び、適用し、Kaggleのコンパニオンで実際の経験を得るか、Google AIで学ぶことでトレーニングリソースの完全なライブラリを調べることができます。
- クラシックコース
- ビューの前提条件を開始する
- クラッシュコースを開始
- するGOOGLE AIで学ぶ