Más contenido relacionado
La actualidad más candente (9)
Similar a 10年ぶりの ニューラルネットワーク (20)
Más de Takatsugu Nokubi (6)
10年ぶりの ニューラルネットワーク
- 2. 発表者について
● 野首貴嗣 (NOKUBI Takatsugu)
○ knok@debian.org
○ OpenPGP id: 99452B4DD28BEEAC8AB5C931B06662EC9C0C1404
■ https://db.debian.org/fetchkey.cgi?fingerprint=99452B4DD28BEEAC8AB5C931B06662EC9C0C1404
○ 学生時代(1995)にニューラルネットを研究室の輪講でやっていた
■ https://twitter.com/knok/status/860501450417360896
■ 第二次人工知能ブーム
● ニューロ&ファジー
- 4. ニューラルネットのお気持ち
● パーセプトロンを組み合わせる
○ 重みとバイアス
■ 入力と期待する出力とが近づくように重み、バイアスを修正
● 逆誤差伝播
● https://www.sist.ac.jp/~kanakubo/research/neuro.html
○ 複数・多段にすることで柔軟な分離ができる
■ 例: AND/OR, XOR
● XORは1ユニットでは実現できない
■ AND/OR(NAND)ができるならなんでもできるのでは
- 5. ブレイクスルー
● 2012年
○ Using large-scale brain simulations for machine learning and A.I. (Google)
■ http://static.googleusercontent.com/media/research.google.com/ja//archive/unsupervised_icml2012.pdf
■ 教師なしで人や猫の特徴を学習した
● いわゆるAutoEncoder
● 16コアを持つマシン169台で学習
画像はブログより
- 7. ブレイクスルー実現要素(1)
● 計算資源
○ 計算能力の向上
■ 1995:PA-RISC (hp-pa9) 25MHz
● メモリ16MB
■ SIMD命令の充実
■ メモリ量の増大
○ GPGPU
■ 行列演算と相性が良い
● 近年のスパコンもGPUを装備
■ AMD/NVIDIAの競争
■ cuda, cuDNN (NVIDIA)
● NVIDIAの優位性は依然としてある
- 8. ブレイクスルー実現要素(2)
● 大規模データセット
○ ImageNet, CIFAR-10, MNIST
○ Google photos, Facebook album等のプラットフォーム
○ MS COCO
○ OpenImages
○ Wikipedia
○ CommonCrawl
● クラウドソーシングフレームワーク
○ Amazon Mechanical Turk
○ Cloudworks
■ アノテーションを依頼できる
- 9. ブレイクスルー実現要素(3)
● 課題解決技術
○ 勾配消失/発散問題
■ アクティベーション関数の改善
● ReLU等のramp function
■ 最適化手法の改善
● クリッピング
● Momentumな手法
● RMSProp, AdaGrad, ADAMとその後継
■ 正規化手法の躍進
● Batch Noramlization
● 分散表現(埋め込み表現)の活用
○ いろんなものが数百次元のベクトルとして表現できるように
○ https://www.slideshare.net/naoakiokazaki/20150530-jsai2015
- 10. ブレイクスルー実現要素(4)
● データ拡張技術
○ 画像処理方面が顕著
■ アフィン変換、ノイズ付与などやりやすい手法が多い
■ 自然言語処理はちょっと難しい
● 辞書ベースなど
● ラベルを必要としない学習
○ word2vec, GloVe等
○ 一部をマスク、入れ替え等
■ そこからただしいものを再構築できるよう学習させる
● 表現学習 (representation learning)
● 敵対的生成ネットワーク (GAN)
○ 本物と生成されたものの区別をつける /欺く
- 11. 環境面
● データサイエンティストブーム
○ 2000年代 - 統計的手法
■ 多変量解析
■ トピックモデル
■ Support Vector Machine (SVM)
○ 2010年代 - 深層学習
■ MOOCsの充実
● Andrew Ng先生の無料講座(日本語字幕あり)
○ 今でも有用なコンテンツ
■ コンペティションの隆盛
● Kaggle, SIGNATE等
● 実行環境の充実
○ Google Colaboratory (無料でGPU/TPUが利用可能, 時間制限あり)
- 12. もたらされた変化(1)
● 人を超える精度/能力
○ 画像認識
○ 機械読解
○ AlphaGo等
● 生成モデル
○ 有名どころ: DeepFake, GPT-2, 3
○ 画像復元(inpainting)
○ 人間の創作活動のアシスト
■ 画像カラー化
■ 自動着色 petalica paint
■ GauGAN
○ 自然な音声合成
○ 音楽生成 Magenta等
■ Infinite death metal
スライド 画像認識と深層学習 より
- 13. もたらされた変化(2)
● 流ちょうな自然言語生成
○ 機械翻訳・文章生成
■ フェイクニュース生成の危惧がなされた
● 識別モデルも提供
● 単語・品詞を意識しなくてもなんとかなる
○ SentencePiece
■ 語彙爆発の苦肉の策
■ End-to-End学習のおかげで品詞情報がなくても処理できる
● 低位層に品詞に相当する情報を暗に学習しているらしい
○ Unicodeバイトレベルの分解
■ カバーできる言語が広がる
■ ただしくないバイト列を生成する問題もある
● https://transformer.huggingface.co/doc/gpt2-large
- 14. 新たな課題(1)
● 翻訳ミス
○ 訳抜け
■ 統計ベースの機械翻訳と違い対応付けが不明瞭
■ 流ちょうなので見逃しやすい
○ 逆の意味の訳文を出してしまう
■ 反対語は全体的にみると出現のしやすさが近い
○ 同じ文言を繰り返し生成
■ たまに発生
● https://www.slideshare.net/ToshiakiNakazawa/nlp2017-nmt-tutorial/79
● Google翻訳, DeepLでも散見
● 消費電力増大
○ 訓練をCPUでがんばるアプローチ
■ https://github.com/keroro824/HashingDeepLearning
- 15. 新たな課題(2)
● データセットとバイアス
○ 実世界のデータにはバイアスがある
○ 考慮なしに利用すると機械学習モデルにもバイアスが反映
○ 公平性(fairness)の担保が課題
● セキュリティ
○ 敵対的サンプル
■ 人の目には自然だが識別モデルは間違う画像 /文章
● https://speakerdeck.com/settenqb/ji-jie-xue-xi-tosekiyuritei
● https://twitter.com/Bleu_kakeru727/status/937680760491753473
○ モデル剽窃
○ データセットへの毒入れ (バックドア)
■ クラウドワーカーの信頼性
- 16. フレームワーク開発
● 古参 (deb有り)
○ Torch7
○ Caffe
○ Theano
● 新しいもの (いくつかはdeb有り) - Pythonが主流に
○ Chainer (2015~, 現在はメンテナンスモード )
■ cupy, ChainerX
■ PyTorch
○ TensorFlow (2015~)
○ Keras
○ Darknet
(個人的に仕事として始めたのも 2015)
- 19. API利用者観点
● TensorFlowは特に利用が簡単
○ 事前訓練済みモデルを配布
■ tensorflow-hub
■ tfjs-models
○ well-documented
■ 日本語翻訳も充実しつつある
○ 入力(連続値、画像等)に対して出力を得られる
■ 分類モデル: 分類結果(ラベル)
■ 物体検知: Boundary boxとラベル
■ 回帰モデル: 予測値等
● 自然言語処理
○ HuggingFace Transformers
○ AllenNLP (研究者向け寄り)
- 21. WebDNNで作ったもの
● edges2cats (pix2pix, chainer)
○ http://pix2pix.daio.net/
○ ソース: https://github.com/knok/chainer-pix2pix
● Wasserstein AutoEncoder (chainer)
○ ht//wae-friends.daio.net
○ ソース: https://github.com/knok/chainer-wae
● データセット収集と訓練から再現可能
- 22. TensorFlow.jsを使ったもの
● バーチャル背景 (virtbg)
○ https://knok.github.io/virtbg/
○ ソース: https://github.com/knok/virtbg
■ 訓練済みのBodyPixモデルを使用
■ https://github.com/tensorflow/tfjs-models/tree/master/body-pix
● VRM Three.js PoseNet Sample
○ https://knok.github.io/vrm-three-posenet/
■ ソース: https://github.com/knok/vrm-three-posenet
● https://github.com/t-takasaka/vrm-three-posenet のfork
● 最近のtfjs-modelsにAPIを合わせた
● 再配布可能なモデルに差し替え
● 訓練済みのPoseNetモデルを使用
○ https://github.com/tensorflow/tfjs-models/tree/master/posenet
- 23. Google colaboratoryを使ったもの
● StyleGan
○ https://colab.research.google.com/drive/1PhO9IUbqGPeJhubNj0YVAlRXsOYEA1Xr
○ disentangle
● HuggingFace ALBERT regression
○ https://colab.research.google.com/drive/1XXmqh_uwV-BCh3FPl4OqDPhMlHRalDKL
○ BERT亜種による回帰
- 24. データセット
● pixbay-cat-images
○ https://github.com/knok/pixabay-cat-images
○ Pixbayの猫画像リンク
■ edges2catsのデータセットに利用
● instagram-food-images
○ https://github.com/knok/instagram-food-images
○ Instagramから餃子、ハンバーガー、ホットドッグ、サンドウィッチ、シュウマイを収集
● make-meidai-dialogue
○ https://github.com/knok/make-meidai-dialogue
○ 日本語自然会話書き起こしコーパス(旧名大会話コーパス)の変換スクリプト
● データ本体は別のライセンスであることが多い
- 25. tfjs-modelsの残念な点
● 訓練用コードが公開されていない
● 訓練データも公開されていない
○ 策定中のDeepLearning Policyに適合しない可能性大
■ https://lists.debian.org/debian-science/2019/06/msg00000.html
■ https://salsa.debian.org/deeplearning-team/ml-policy
■ 再現性を求める方向で進んでいる
● TensorFlow.js以外での動作を想定していない
○ 一応変換ツールはある
■ https://github.com/patlevin/tfjs-to-tf
- 26. 他にできそうなこと(1)
● ハンドトラッキング
○ Leap Motion/Kinectの代替
■ deepな手法である必要性はない
● VTuberアプリ
○ VRM+PoseNetで既にある程度いけそう
■ BodyPixは顔パーツ認識も可能
● 表情への反映もできる
● FaceMesh
■ 先行実装: FaceVTuber ref: https://vrm.dev/vrm_applications/
○ 声質変換?
■ Yukariライブラリ
● https://qiita.com/atticatticattic/items/37441f3be6916cd1e73a
■ 速度に課題
● GPU必須
- 27. 他にできそうなこと(2)
● 自然言語処理
○ ブラウザと Tensorflow.js を使った BERT の活用方法を考える (Google blog)
■ https://developers-jp.googleblog.com/2020/04/tensorflowjs-bert.html
■ https://github.com/tensorflow/tfjs-models/tree/master/qna
● MobileBERTを用いたQ&A
● 現状日本語は使えない
○ 日本語のQ&Aで訓練していない
■ SQuAD 1.1に基づく(らしい)
■ https://www.slideshare.net/ShionHonda/bertmobileberttensorflowjs
○ 語彙自体は含まれている
○ 訓練データを用意し、 fine tuningすれば使えるはず
■ TensorFlow Liteモデルもある
■ 簡単な分類ぐらいなら割とすぐできそう
- 28. 速度面の課題
● 画像は補完技術が充実
○ 音声、自然言語への適用は困難
○ 生成に必要なデータが巨大、計算量も多い
■ GPUでリアルタイムにできるようになってきた
● WaveNet(2016)では1秒の音声生成に1分程度かかっていた
● 量子化
○ 浮動小数点計算を整数やバイナリで近似する技術
■ すべての演算を置き換えることが常に可能とは限らない
○ tfjs-modelsは多くをサポート
■ 精度を犠牲にしていることに留意
● DNNモデルの推論はシングルコア駆動(多分)
○ TensorFlowネイティブランタイムならマルチコア駆動
- 29. コンピューティングのトレンド
● 歴史は繰り返す
○ 中央集権型 vs 分散型
■ 「ダウンサイジング」
● Thin Clinet
■ エッジAI
● DNNモデルを軽量化
● 組み込み機器で動作させる
● cf. AIスピーカー
○ 処理の大半はクラウド側
○ 温故知新
■ LSTM, CNNも20世紀に考案されたもの
○ 次のトレンドは?
■ ニューラルネットのように昔のトレンドが復活する可能性
- 31. NN以外のトピック
● 統計ベース
○ ベイジアンフィルター
■ A Plan For Spam (by Paul Graham, 2002)
● bogofilter, spamassassin等
● Support Vector Machine (SVM)
● 決定木(Decision Tree)ベース
○ XGBoost
○ LightGBM
○ CatBoost