Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nx、Axonを楽しむための前説

 Nx、Axonを楽しむための前説

このスライドは2022/11/22開催の下記勉強会の登壇スライドです。

LiveView JP#12:はじめてのElixir AI・ML…Livebook+Nxで
https://liveviewjp.connpass.com/event/262754/

nako@9時間睡眠

November 22, 2022
Tweet

More Decks by nako@9時間睡眠

Other Decks in Programming

Transcript

  1. Nx、Axonを
    楽しむための前説
    nako@9時間睡眠 2022/11/21
    協力:piacere_ex

    View full-size slide

  2. 自己紹介
    ● nako@9時間睡眠
    ● 会社員。Webサービスのサーバサイ
    ドエンジニア
    ● Elixir/Phoenix初心者コミュニティ
    『piyopiyo.ex』オーガナイザー

    View full-size slide

  3. Elixirの機械学習に
    必要なライブラリ

    View full-size slide

  4. Elixirの機械学習に必要なライブラリ(一部)
    ● Nx
    ○ Elixirで実装された行列ライブラリ
    ○ 機械学習、画像処理の基盤ライブラリとして用いられる
    ● EXLA、TorchX
    ○ GPU駆動のバックエンド
    ○ これらを通じて、ElixirはGPUを利用可能となります(CPU駆動も可能)
    ● Axon
    ○ Nxによるニューラルネットワーク/ディープラーニングのためのライブラリ
    ● AxonOnnx
    ○ Onnxモデル(推論で広く使用されている機械学習モデルのフォーマット)をロードし、利用
    することができる
    他にもたくさん
    あります!

    View full-size slide

  5. AI?機械学習?

    View full-size slide

  6. AI?機械学習?…それぞれの位置付け
    人工知能(AI)
    機械学習(ML)
    ニューラルネット
    ワーク
    深層学習(DL)
    データから機械自身に、その振る舞いを学習させるための技術・研
    究領域を指す。
    人間の脳内にある神経細胞(ニューロン)とそのつながり(神経回
    路網)を人工ニューロンという数式的なモデルで表現したもの。
    ニューラルネットワークを応用させたものがディープラーニング、
    または深層学習と呼ばれている。

    View full-size slide

  7. 機械学習が使われる場面
    ● 自動運転
    ● 文字識別
    ● 顔認識検知
    ● レコメンドシステム
    ● フィルタリング
    など

    View full-size slide

  8. Nx…の前に、
    行列はなぜ必要?

    View full-size slide

  9. ざっくり行列
    ● 数、文字、式等を、列と行に沿って配置し括弧でくくっったもの
    1 2 3
    4 5 6
    7 8 9
    ( )


    View full-size slide

  10. なぜ行列が必要?
    ● 機械学習では、文字通り機械に処理させる必要がある
    ● そのため、人間だと視覚や音として認識するデータも数字で表す必要がある
    ● つまり、画像や文字列などの数字で無いデータも数値化する必要がある
    ● そうした複雑なデータを数値化するには「行列」が便利

    View full-size slide

  11. Nx、Axonとは

    View full-size slide

  12. Nxとは
    ● Elixirの行列操作ライブラリ
    ○ 内部的には、Elixirを動かすVMであるErlangVMで動いておらず、ネイティブコードで実行
    されていて、処理がとても高速
    ○ Pythonをご存知であれば、NumPyに相当
    ● 機械学習や画像処理の基盤ライブラリとして用いることができる
    ● CPU/GPU/TPUといった、様々な演算装置で利用可能
    ○ 特に、GPU/TPUで行列処理を行うと、超高速で高度な処理ができる
    ● ちなみにNxは「Numerical Elixir(数値的なElixir)」の略

    View full-size slide

  13. Axonとは
    ● Nxによるニューラルネットワーク/ディープラーニングのためのライブラリ
    ○ Pythonをご存知であれば、TensorFlow/Keras/PyTorchに相当
    ● 何十層、何百層もあるニューラルネットワークをいとも簡単に構築できる
    ● ディープラーニングの学習/予測の基本的な関数は一通り備えており、評価関数
    や最適化関数なども完備している
    ● ちなみにAxonは「軸索」という意味
    ○ 人の脳神経の中で大事な部分

    View full-size slide

  14. ご清聴ありがとう
    ございました!

    View full-size slide