Googleが取り組む機械学習の中に、ガンの画像診断がある
https://ai.googleblog.com/2017/03/assisting-pathologists-in-detecting.html
マイクロファージではなく腫瘍を正しく検出する
これは腫瘍でやってるけど、人間の目で判断していることを
deep learningでソリューションを提示できればビジネスになるってことかな。
随机应变 ABCD: Always Be Coding and … : хороший
Googleが取り組む機械学習の中に、ガンの画像診断がある
https://ai.googleblog.com/2017/03/assisting-pathologists-in-detecting.html
マイクロファージではなく腫瘍を正しく検出する
これは腫瘍でやってるけど、人間の目で判断していることを
deep learningでソリューションを提示できればビジネスになるってことかな。
機械学習モデルを理解することがまず第一
ロジスティック回帰
– 線形回帰式をシグモイド関数にかけて確率値と解釈
ニューラルネットワーク
– ロジスティック回帰の仕組みに隠れ層ノードを追加
サポートベクターマシン
– 2クラスの標本値と境界線の距離を基準に最適化
単純ベイズ
– ベイズの公式を用いて観測値から確率を更新
決定木
– 特定の項目の閾値を基準に分類
ランダムフォレスト
– 複数の決定木の多数決で分類を実施
ロジスティック回帰、ニューラルネットワーク、ディープラーニングは、
予測モデルの構造は事前に決まっていて、パラメータ値にだけ自由度
モデルの構造
(1)個々の入力値にパラメーター値をかける
(2)かけた結果の和をとる
(3)結果にある関数を作用させ、その関数の出力を最終的な予測値(yp)とする
パラメータ値の最適化が学習
モデルが正解値をどの程度正しく予想できるかを評価するための損失関数を定める
つまり、ディープラーニングは線形回帰モデルの発展型といっても過言ではない。
最初に「線形回帰モデル」を学び、そこから、分類モデルのロジスティック回帰、ニューラルネットワーク、ディープラーニングを理解するのが良い。なるほど。
[vagrant@localhost waymo-od]$ sudo yum -y install bash-completion tcpdump chrony wget git
[vagrant@localhost waymo-od]$ sudo vi /etc/yum.repos.d/virt7-docker-common-release.repo
name=virt7-docker-common-release baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/ gpgcheck=0
[vagrant@localhost waymo-od]$ sudo yum -y install –enablerepo=virt7-docker-common-release kubernetes etcd flannel
読み込んだプラグイン:fastestmirror
File contains no section headers.
file: file:///etc/yum.repos.d/virt7-docker-common-release.repo, line: 1
‘name=virt7-docker-common-release\n’
ん?section headers?
sudo yum -y install –enablerepo=virt7-docker-common-release kubernetes etcd flannel
エラー: パッケージ: etcd-2.0.9-1.el7.x86_64 (virt7-docker-common-release)
要求: systemd
エラー: パッケージ: docker-1.6.2-4.gitc3ca5bb.el7.x86_64 (virt7-docker-common-release)
要求: systemd
エラー: パッケージ: flannel-0.2.0-7.el7.x86_64 (virt7-docker-common-release)
要求: systemd
マシンのIPアドレスを決めて、そのアドレス設定を、ネットワーク上の全てのマシンに伝える
[vagrant@localhost waymo-od]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1はループバックアドレス
kubernetesとは?
-> 自動デプロイ、スケーリング、アプリ・コンテナの運用自動化のために設計されたオープンソースのプラットフォーム
-> Dockerコンテナをクラスタ化した際の運用ツール
– アプリを迅速に予定通りにデプロイ(コンテナをサーバー群に展開)
– 稼働中にアプリをスケール(稼働中にコンテナ数を変更)
– 新機能をシームレスに提供開始(稼働中にロールアウト)
– ハードウェアの利用率を要求に制限(コンテナで共存させて稼働率を高くする)
パブリッククラウド、プライベートクラウド、ハイブリッドクラウド、マルチクラウド
モジュール化、追加可能、接続可能、構成可能
自動配置、自動再起動、自動複製、自動スケーリング
管理上の基本単位はPodという
– volume: 記憶領域を共有するコンテナの集まり
– Container
– IP ADress
要するに、
– アプリを迅速に予定通りにデプロイ
– 稼働中にアプリをスケールする
ことができるらしい。。。
流石に翻訳はないか。
https://waymo.com/open/
>The Dataset is about 1TB after compression for 1000 segments. Segments have been packaged into multiple files of about 25GB each.
>All segments contain 3D labels. The 100 segments that also contain 2D labels have been packaged into the first three files under ‘Training’ and the first file under ‘Validation’.
何これ?git hubもありますね。pythonです。
https://github.com/waymo-research/waymo-open-dataset/blob/master/tutorial/tutorial.ipynb
google colab
https://colab.research.google.com/notebooks/welcome.ipynb#recent=true
[vagrant@localhost local]$ python -V
Python 3.5.2
system requirement
– g++ 6 or higher.
– Python 3.
– TensorFlow 1.14.0 or higher.
g++って、c++じゃん。使わんなー
とりあえずgit clone
[vagrant@localhost waymo]$ git clone https://github.com/waymo-research/waymo-open-dataset.git waymo-od
Initialized empty Git repository in /home/vagrant/local/waymo/waymo-od/.git/
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 174 (delta 17), reused 35 (delta 12), pack-reused 124
Receiving objects: 100% (174/174), 14.00 MiB | 2.93 MiB/s, done.
Resolving deltas: 100% (45/45), done.
[vagrant@localhost waymo-od]$ git checkout remotes/origin/r1.0
Note: checking out ‘remotes/origin/r1.0’.
You are in ‘detached HEAD’ state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at 2f30db6… Merge branch ‘master’ into r1.0
[vagrant@localhost waymo-od]$ git branch
* (no branch)
master
あれ?
sudo apt-get install --assume-yes pkg-config zip g++ zlib1g-dev unzip python3 python3-pip BAZEL_VERSION=0.28.0 wget https://github.com/bazelbuild/bazel/releases/download/0.28.0/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh sudo bash bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh sudo apt install build-essential
これ、debian向けに書かれてる?
そして、bazelってビルドツール?makeでないんかい。
Google, Amazon, Facebook, Apple, Microsoftはどのように機械学習に取り組んでいるのか?まずそれを知ることが大事。
■Google
自動運転への取り組みとしてWaymo
https://waymo.com/
続いて、Waymoのsoftware engineeringの採用情報を見てみましょう。
Data scientistの条件。phDか。。まじかー。
We’d like you to have:
PhD in statistics, math, or other quantitative area
Progressive statistics background either in academia or industry
Data science and system evaluation experience
Willingness to understand a complex system and its various components
Experience with tools for manipulating big data
Experience with R/Python and statistical libraries
続いてDeep Leaningのsoftware engineer
PhD in Computer Science, Machine Learning, Robotics, similar technical field of study, or equivalent practical experience
Experience in applied Machine Learning including data collection, analysis and feature engineering
Experience in Deep Learning research
Experience with TensorFlow
Experience programming in Python/C++
そうか、computer scienceはOKとして、Machine Learning, Roboticsは必須だな。
スタートアップとしては、プロトタイプを作りながら、ブラッシュアップが定説。
Hardwareの知識と組み合わせると、難易度が一気に上がる。つまりそこか。
まずはmachine learningとアプリケーションからか。
全体像、前提知識が重要だ
概念としてAIと呼ばれるもの
L 機械学習
L 教師なし学習
L 教師あり学習
L ニューラルネットワーク
L ディープラーニング
L 強化学習
論理削除用のカラムを追加します
[vagrant@localhost test]$ php artisan make:migration add_column_softDeletes_users_table –table=users
Created Migration: 2019_08_20_001651_add_column_softDeletes_users_table
migrationsにも追加されていますね。