機械学習(ネットより借用)

Quiitaに載ったnord2sudjpさんの文章を全面的にコピーさせていただきました。有難うございます。

200701機械学習

機械学習について一回挫折してしまったエンジニアが何とかお仕事で機械学習を使えるようになるまで

Python

初心者

機械学習

DeepLearning

データ分析

初めに

4x歳越えのエンジニアにとって機械学習は何やらややこしいもの、本を開けば数式があり、pythonがあり、何それおいしいの?5年ほど前にCourceraで機械学習を学ぼうとしたがあっさりAndrew Ng先生はWeek4で挫折。”教師付き学習”と”教師なし学習”のちがいなんだっけ?

想定している読者

IT業界で別のキャリアを持っていて機械学習のキャリアをみにつけたい、あるいは身につけようとしたが挫折してしまった人

自分のキャリアについて

ホストの開発エンジニアから始まり、クライアントサーバー、Webアプリと開発系を云十年。その後ネットワーク、インフラ系を主な仕事にしています。

機械学習とのかかわり

5年ほど前に機械学習の勉強をしようとしたが、何をやっているか意味が分からず、あっさり挫折。その後は雑誌などで読む程度。

注)データ分析・機械学種・人工知能については、この文章では厳密に分けていません。

挫折した敗因

機械学習について理解していなかった件

勉強の仕方

機械学習について理解していなかった件

まず機械学習が何かを理解していなかった。

人工知能、機械学習、データ分析、統計とあるがこの違いを理解せず、ひたすら機械学習を統計の一分野と信じ込んでいた。

学習という言葉を過去の統計量のなにか”すごいもの”と考えていた

結果としてそれが予測としての”回帰”, “分類”に続くという概念がなかった。

勉強の仕方がわかっていなかった

いきなり数式から勉強しだした→時間かかるが業務には役に立たず

勉強しても使えないので、相変わらずSQL, エクセル、ピボットテーブルに頼る

モチベーションが下がって続けるのが嫌になってやめた

今回の勉強方法

視点を分けて効率よく理解できるように進めることにした。

ユーザーと機械学習について話をできるようにする -> 人工知能概要

機械学習に頼らない一般的なデータ分析を理解する -> データ分析一般

機械学習を導入するプロジェクトポイントを理解する -> プロジェクト管理

機械学習をとりあえず使えるようにする -> 機械学習の初歩

Pythonを使えるようにする -> Pythonを学ぶ

数学について理解を深めて、機械学習の実装コードを書く -> 数学

機械学習をさらにディープに学ぶ -> 機械学習中級者へ向けて

人工知能概要

社内システムエンジニアにとって避けて通れないのは機械学習をビジネスに役立てる方法である。

内部顧客に対して機械学習システムを売り込んでいく、これがなければ社内での必要性を醸成できないし、予算も獲得できない。

おすすめの教材

G検定

「ユーザーに対して機械学習・AIについて何かを話せるようになりたい。しかも2週間で!」という人に間違いなくお勧めがG検定である。人工知能に関する歴史、今後の展開、危険性、哲学が効率よく学べる。お勧めの教材は下記の2つ。

人工知能は人間を超えるか ディープラーニングの先にあるもの

この本は絶対に読むべきである。データ分析、機械学習、人口知能は様々な用語が複雑に絡み合い、使っている本人も明確な定義や違いを理解していない。第一章では人工知能を明確に定義し、かつ他の用語との違いを明らかにしている。さらに第二章から第五章では人工知能の歴史をたどることのより、人工知能における様々な分野が整理されている。第六章および第七章はビジネスでユーザーに話す際のAIについて知見として含蓄に富んでいる。二時間程度で読み終わる、何はともあれ読むべき一冊である。

徹底攻略 ディープラーニングG検定 ジェネラリスト

G検定をとるにあたり様々な参考書が出ているが、自分としてはこの一冊があれば十分と考える。この本で理解できなかった部分だけをインターネット上で調べてテストに臨んだ結果としてG検定を取得できた。G検定を修了するととりあえずユーザーとはそれっぽい言葉を使ってお話をできる。またデータ分析、機械学習、人工知能にまつわる用語まある程度使い分けができる。

データ分析一般

データ分析の一分野が機械学習であり、機械学習の一分野が人工知能である。大きな枠組みとしてのデータ分析を理解していなければ、一時しのぎの機械学習エンジニアにしかなれない。その反面、データ分析という分野を理解していれば必要に応じて、統計手法、機械学習手法、人工知能を使い分けられる。エクセルですむデータ分析に人工知能をもちいるのは意味なし!

おすすめの教材

本物のデータ分析力が身に付く本

この本の素晴らしいことろは、設計→事前チェック→分析方法→分析→評価および解釈→表現を一気通貫で一冊のしかもコンパクトな本にまとめているところである。問題がある分野の定義からいかにしてデータ分析に進めていくか、図解、基本問題を明確に理解する。さらにあらかじめエクスセルで作成されテンプレートでハンズオンを実施すれば間違いなくデータ分析初級者卒業である。

一億人のための統計解析

著者の西内啓氏は「統計学が最強の学問」でよく知られている。しかし超実践という意味ではこの本がおすすめである。IT技術者としてデータ分析にかかわり始めると、最初の難関はビジネスで起きている問題をどのように把握して、データ分析に持ち込むかである。データ分析の手法および実践は基本的なIT知識があればあまり困難なく実施できる。しかしビジネス→データ分析分野への持ち込むにはITではなくビジネス寄りの知識が必要になる。この本は実際のケーススタディを基にしてデータ分析を進める。使っているソフトはエクセル、手法はピボットテーブルおよび統計が主である。この本を読むことでビジネス上の課題を以下にアプリケーションに落とし込むかを理解できる。

データ解析の実務プロセス入門

この本は先の2冊に比べると細かくより実践的である。しかしそれだからこの本を先に読むとほぼ間違いなく挫折する。あるいは挫折しなくても、何をやっているかを理解できずに読み終わり時間だけ無駄になる。上記2冊はそれぞれ一週間ほどでハンズオンも含めて終了できる。その後にこの本を読むことで、データ分析を趣味からビジネスレベルへとブラッシュアップできる。この本はいつでもそばに置いてあり、なにか行き詰った時にはアイデアを出すために読んでいる。

プロジェクト管理

社内での新しいシステムを導入するためにはプロジェクトとして進める必要がある。プロジェクトにしなければ、予算はつかない、人員もつかない、関係部署ともやり取りできない。システム開発のプロジェクトについては進め方を理解していても、データ分析プロジェクトでは何が違うかを明らかにする。

おすすめの教材

人工知能システムのプロジェクトがわかる本

さすがに40歳を越えるとIT系のプロジェクトは複数回経験がある。そこでポイントになるのは今までのITプロジェクトと機械学習のプロジェクトは何が違うのか、大事なのは他のシステム開発とは同じポイントは何か、異なるポイントは何かを理解することである。これにより今までの知見を活かしつつ、スムーズに機械学習・人工知能プロジェクトを導入できる。そして今までのプロジェクトと明らかに異なる点は2つある。POCとKPIであり、これがわかりやすく紹介されている本は一冊だけであった。

機械学習の初歩

機械学習の核心となるのがこの分野である。言語してはPythonとRから選べるが、今は資料および将来性からPythonで機械学習の基本を学ぶことをお勧めする。

おすすめの教材

Pythonデータサイエンスハンドブック

何からはじめたらよいかわからなければまずここからです。この本は英語版であれば無料で利用できます。

Pythonで機械学習を利用する場合、間違いなく利用するパッケージがnumpy, pandas, matplotlibです。導入としてまずそれぞれのパッケージの使い方について基礎を学びます。そして実際の機械学習パッケージであるscikitlearnへと進みます。量も多すぎず少なすぎずであまり時間を掛けずに進めることができます。機械学習の章では、数式も出てきますが、ここは無理に理解しようとせず、とりあえずパッケージの使い方に注力すればよいでしょう。

Pythonによるデータ分析入門

この本は上記Pythonデータサイエンスハンドブックを読み終わってから、取り掛かることをお勧めします。

一説ではデータの準備に8割、機械学習の実施に2割の労力が必要とされるといわれます。この本は機械学習ではなく、データ分析手法に主に取り扱っています。ファイル入出力、データ型、可視化、データ変換などをより細かく扱っています。そのためPythonの知識が必須です。読み込むのもハンズオンを含めるとそれなりに時間がかかります。しかしこれを一冊終わらせたら間違いなくPython初心者卒業であり、しかもデータ分析をするにあたっての、numpy, pandas, matoplotlibについて使いこなせるでしょう。

Pythonで始める機械学習

さて上記2冊を終わらせると、データの準備及び基本となる機械学習についてはばっちりである。この本は機械学習中級者への第一歩となる。機械学習を始めてみると、時間がかかるのはデータのクレンジングと特徴量設計である。特徴量設計は実践という意味ではkaggleのKernelがおすすめである。しかしこの本で特徴量設計についてはあらかじめ基礎を理解しておけば、なぜカーネルで記述されているような特徴量設計がされているかが理解できる。この賞は何回でも読み直したい。

Python

機械学習を学ぶ際の言語としては先にも記述したがPythonとRが主流である。かくいう自分はかつては統計データの取り扱いでRを利用していた。しかし今機械学習を学ぶ上では間違いなくPythonがおすすめである。

まずPythonで提供されているscikitlearnは機械学習を学ぶのに最適なパッケージである。そして様々な本やオンラインのトレーニングも提供されている。さらに機械学習の前段となるデータクレンジングのステップでもPythonは強力なツールとなる。

おすすめの教材

Udemy 現役シリコンバレーエンジニアが教えるPython3

面倒くさいことは言いません、とりあえずここからはじめるのが一番です。値段が安い時を狙ってください。

みんなのPython

Pythonを基礎から教えてくれる本である。イテレータ、ジェネレータ、デコレータなどの理解が難しい分野についてもわかりやすく説明している。

独学プログラマー Python言語の基本から仕事のやり方まで

プログラマーとして仕事を始めると、言語以外の知識も必要になってくる。この本を読めばPythonプログラマーとして必要なツールについても理解が深まる。新しい会社に働きに行って、「このPythonはシェルに組み込んでおいてね」や「必要なソースコードはgitからプルしてね」といった会話にも付いていける。

数学

正直業務で使うだけなら、それほど数学は必要ない。しかしある程度は理解しているほうがトラブルシューティングやコードの改善にも役立つ。

Andrew NG氏による機械学習

数学という意味では少々分野がずれるかもしれない。しかしAndrew NG氏によるこのコースはアルゴリズムの理解とその背景にある数式、さらにOctaveによるコードまで、一気通貫で説明する。線形代数、ベクトルを単体で勉強したとしても機械学習のアルゴリズムの中でどのように利用されているか、そしてどのようにコーディングされるかが理解できないと実務には役に立たない。その点このコースはアカデミックと実務をバランスよく組み合わせたコースである。ただしテストはかなり難しい。。。

統計学が最強の学問である[数学編]

再び西内啓氏の登場である。とにかく「統計学が最強の学問である」が良く知られているが、個人的にはこちらのほうがおすすめである。数式も出てくるが、説明がわかりやすく平易な日本語で書かれているために、数学の素養がなくてもねばりさえすれば理解できる。”ベクトルの内積とΣの関係”、”統計学での内積の使い方”の章でようやく内積の意味を理解できた気がする。

やさしく学ぶ 機械学習を理解するための数学のきほん

やる夫で学ぶ機械学習シリーズの著者による執筆である。このシリーズを見たときにはやる夫なかなか、やるな!と実感した。こちらのシリーズを終えてからより実践的なこちらの本で勉強を始めた。数式もばっちり出てくるが、基本をしっかり押さえつつ、初学者にはあまり必要でないややこしいところはうまい具合に取り除いている。数学で挫折した人にまずはお勧めしたい一冊である。ちなみに数式という意味では、ビショップ本が著名であるが、初心者が手を出すと間違いなく挫折します。

機械学習中級者へ向けて

さてここまででおそらく初級者としては十分すぎるほどである。しかしどうすれば中級者にむけた足掛かりをつくれるか、これは股別問題である。ここでは自分が読んだ中で、間違いなくレベルアップを実感できた二冊の本を紹介する。良書と呼ばれる本はこのレベルでも複数ある。しかし正直難しすぎることが多く、途中で挫折してしまった本が多いのもこのレベルの特徴である。

おすすめの教材

ゼロから作るDeep Learning

脱初級に向けて何か一冊となったら間違いなくこの本である。正直この本を読むまでは”誤差逆伝播法”という単語は知っていたが、まったく理解できていなかった。本などを読んでもいまいちピンとこない。この本の第五章はその名も”誤差逆伝播法”であり、一から実装する。この本の中でどこかひとつ選ぶとなったら、まさしく第五章である。ただし第三章のニューラルネットワークおよび第四章のニューラルネットワークの学習で実装した内容を用いるために、こちらも併せて読みたい。

機械学習プログラミング 達人データサイエンティストによる理論と実践

現在手を付けているのがこの本である。おそらくこの本を読了してコードも一通り理解できれば、実装という意味では中級卒業と考えられる。数式は出てくるが基本を押さえておけばわかる範囲であり、”やさしく学ぶ 機械学習を理解するための数学のきほん”を理解していれば問題ない。大事なのは数式が理解できなかったらすぐに調べることです。なぜなら、数式の説明の後に、これを容赦なくコードに落とし込んでいくので単層パーセプトロンを一から実装する。シンプルで平易なコードであるが、Pythonコードを読む能力が相当要求される。第二章を足掛かりとして、ほかの機械学習の分類アルゴリズム、データの前処理、クロスバリデーションと話を進めていく。全体として難しい内容を平易な文章とコードで説明しようとする意図が感じられる良書である。

  • Quiitaに載ったnord2sudjpさんの文章を全面的にコピーさせていただきました。有難うございます。
↑人気ブログランキングに参加しています。ポチっと1票を!

                                以上

iPhoneより修正入力

PCとiPhoneの共同作業

iPhoneのみでブログを作成する場合、パスワードの入力に手間どってしまい、完結しない場合が多いです。

このブログ原稿はGmail上で音声認識により入力しています。iPhoneのみでブログを作成する場合、パスワードの入力に手間どってしまい、完結しない場合が多いです。そういうことなので写真はiPhoneで行い、また文章入力もiPhoneで行うことによって、PC側の作業の省力化を図ることにしました。iPhoneのみで完結するのは困難なのでこの方法しかありません。それにワードプレスの編集画面の右ペインで各項目をヒィルイットアップするのは難しいので仕方のないことです。この辺で音声入力は終わります。

iPhoneで撮った写真
iPhoneで撮った写真

連絡先に複数の電話番号がある人に「Hey Siri」を使ってかける場合、Hey Siri XXXXに電話をかけてというと、少し間をおいて、どの電話にしますか?と聞いてきて、それをタップするとその電話を呼び出してくれる。Siriはなかなか賢いのである。

↑人気ブログランキングに参加しています。ポチっと1票を!

寝床から失礼!

寝床から失礼いたします。

Hey Siri

Hey Siri で電話もかけてみました。ちゃんとかかりました。

下の画像は後からPCにて編集後挿入しました。

やっと35,000にカウントがなりました。1日4,500という日もあったんですが。
やっと35,000にカウントがなりました。1日4,500という日もあったんですが。
↑人気ブログランキングに参加しています。ポチっと1票を!

全てiPhoneで処理いたしました。

iPhoneだけでブログを完結できる

結論から言うとiPhoneだけでブログアップはできる!

iPhoneだけでブログを完結できるように考える。
結果的に失敗したがiPhoneの中だけでブログの記事を完結できる。
①ログイン→ユーザ名パスワード入力
②投稿→新規追加
③タイトルを追加
④文章を入力(音声認識入力「メモ」からコピペ)
⑤写真を追加(iPhoneで撮った写真)
⑥人気バナーを選択(検索も利用可)
⑦カテゴリーをチェック
⑧新規タグを追加
⑨アイキャッチ画像を設定
⑩抜粋を入力
⑪公開をタップ(確認タップ)
⑫ログオフ(パスワード入力が面倒くさいので慎重に!)
⑬お気に入りから「野性の証明」をクリック
⑭今設定したブログの内容をチェック
⑭再びログインして投稿一覧表から入って修正
これでiPhoneだけで記事のアップとチェックが終了。
ここで問題となるのがログイン(ユーザー名とパスワードが記憶「保持」できない)
「更新」ボタンをタップしても効かない(トラブル)
しかし「更新」まではできた
結論から言うとiPhoneだけでブログアップはできる!

iPhone内のidea Machineの現在の状況
iPhone内のidea Machineの現在の状況
↑人気ブログランキングに参加しています。ポチっと1票を!

iPhone内でGmailの送受信を行う

iPhone内でGmailの送受信を行う
① iPhoneの待ち受け画面でGmailのアイコンをタップ。
②画面の+マークをタップでメールの新規作成。
③宛先にsとhを入力自分自身とスマホのメールにメールを送信。
④件名と本文を音声入力する。
⑤添付または添付する写真の画像を撮り。
⑥画面上のほうのヤジリマークをタップメール本体が送信される。
⑦Gmailとスマホにメールが送られる。
⑧iPhone内の写真やスナップショットは従来通りメモデーターの中で行う。
上記操作によりスマホ上でGmail操作が完結する。
※ → iPhoneに登録されている写真や文章は添付できません。添付できるのはPC上のデータのみです。

今までGmailのハンドリングはPCのみで行ってきた。それがiPhoneでもできるようになり、ブログが簡単にアップできるようになった。凄い進歩である。ただし添付資料はiPhone内でやっているにもかかわらず、PC側の資料だけしかかなわない。iPhone内のものは今まで通りの操作が必要となる。

↑人気ブログランキングに参加しています。ポチっと1票を!

iPhoneで作った原稿をPCのGmailに転送する

iPhoneで作った原稿をPCのGmailに転送するそしてブログにアップする

iPhoneで作った原稿をPCのGmailに転送するそしてブログにアップする
① iPhoneで記事を作る。
② iPhoneの記事を開く。
③記事の右上のアクションアイコンをタップする。
④下に現れたメールアイコンをタップする。
⑤メールの宛先にエスを入力する。
Gmailの正しいアドレスをタップする。
⑥右上の送信矢印をタップする。
⑦PCのGmailのメールを開ける。
⑧メールの記事をコピーする。
09ブログの記事にペーストする。
⑩記事を編集する。
⑪記事をアップする。
以上

GmailをPC上で作成しPC上の写真を添付してGmail宛にまたスマホ宛に送信しました
①sとhに送信
② iPhoneでGmailアイコンをタップ
③添付写真をタップ
④画面中央に写真が映る
⑤上の保存アイコンをタップ保存が表示
⑥iPhoneの写真アイコンをタップ
⑥1番新しいところに表示
⑦Gmailを開くiPhoneのゴミ箱をタップiPhoneとPC上からそのメールが消えた
メモの文章の中からの送信
①右上のアクションをタップ
②下のメールをタップ
③宛先にsを入力
④本文を入力
⑤本文の中にカーソルを入れる
⑥キーボードの上に写真のマークがありそれをタップ
→写真機をタップ→フォトライブラリーをタップ→すべての写真をタップ→写真の上でタップ→マークがつく→完了をタップ→写真が挿入される→アクションから始める。 ①から再度実行

⑦すべての写真をタップ
⑧求める写真の上で強くタップ
⑨大きく映し出された写真の上で選択をタップ
⑩本文に今タップした写真があることを確認
⑪送信をタップ

以上

↑人気ブログランキングに参加しています。ポチっと1票を!

音声認識編集記号(Siri)

音声認識編集記号(Siri)をまとめた。
参考にしてください。
固有名詞以外はほとんどこの情報で事足ります。
惜しむらくはユーザー辞書などが音声認識(Siri)に非対応なことです。

音声認識編集記号
空白 → タブキー
改行 → かいぎょう
→ → やじるし
。 → まる
、 → てん
① → まるいち
○ → しろまる
● → くろまる
? → クエスチョンマーク
! → びっくりマーク
※ → こめじるし
@ → アットマーク
: → コロン
; → セミコロン
* → アステリスク
※ 固有名詞にユーザ辞書は使えない
学習機能なし

↑人気ブログランキングに参加しています。ポチっと1票を!

iPhoneで作成したブログ記事

iPhone関連のインデックス

iPhoneで作成したブログ記事
① iPhoneで作成したブログ記事は途中でテキストを削除したり訂正したりする時、カーソルで間違えてしまった時など、iPhoneを振って取り消しすれば良い。
②原稿をGmailに送って、その後ブログにアップする。その際コピペを行う。
③実際に訂正記事を途中で間違えて見る。

iPhoneアイデアマシーン
iPhoneアイデアマシーン
iPhoneのインデックス
iPhoneのインデックス
↑人気ブログランキングに参加しています。ポチっと1票を!

八方ふさがり

全部協力しているのに、ブラウザーにSafariはだめ、Yahooにしろ、Air Printerは使わせない、Actionのポップアップは阻止する、アイキャッチ画像のような迂回方法もだめ、じゃいったいスマホで何をしろというんだ!俺はもうやめた。まだスマホデビューしてから1週間しかたっていないんだぞ。どうにかしてくれ!

↑人気ブログランキングに参加しています。ポチっと1票を!

初めてのiPhoneからの投稿

iPhoneからの初めての投稿、パスワードの入力がめっちゃ難しかった!

初めてのiPhoneからの投稿です。シンプルにこれだけの文章で終わります。

ここからは以下の手順でこの項を編集したものです。

①原稿はiPhoneの方で書き下ろし
② iPhone側では音声入力し
③原稿はプレーンで
④その他の写真やデータはPCの方で用意する
⑤その他の体裁もPCの方で修正する
⑥場合によっては写真はiPhoneの方で用意する
以上の要領で行う。

以上はiPhoneの音声認識入力によるものです。

↑人気ブログランキングに参加しています。ポチっと1票を!