小さく始めて、小さく続ける。小さく始めて、小さく続ける。MLとソフトウェア開発ディープラーニングに取り組むときの新しい選択肢ディープラーニングのエコシステムディープラーニングとPythonのエコシステムの発展は目覚ましいです。Pythonのディープラーニングライブラリの2大巨頭となったTensorFlowPyTorchは、それぞれPythonでの利用を主に想定して、多様なツールが日々開発されています。Pythonには、シンプルな構文2021年時点で整備されている豊富なフレームワーク、ライブラリといった強力な強みがあり、ディープラーニングに用いられるプログラミング言語の筆頭です。最適な実行速度を実現したいソフトウェア開発と合わせたDevOps、MLOpsの点から多様なプログラミング言語でディープラーニングを試したいなどのニーズから、他のプログラミング言語でディープラーニングに取り組むケースも見られます。今日は、JavaJuliaSwiftの3つのプログラミング言語から見たディープラーニング環境を紹介します。JavaやJVM言語Javaは、汎用プログラミング言語として長年広く使われてきました。Java仮想マシンで動作するJVM言語と合わせてソフトウェア開発をはじめとしてJava広く用いられています。JavaやJVM言語のディープラーニング環境としては、DeepLearning4Jが広く知られています。Javaには、DeepLearning4J以外の環境も複数あります。Library(DJL)は、2019年に公開されたJavaのディープラーニング用ライブラリです。ディープラーニングで豊富なエコシステムを持つPythonに比べて、Javaのディープラーニングエコシステムは十分ではない。多くのJavaユーザーがディープラーニング環境にアクセスできるようにしたい、ということがDJL開発のミッションだとされています。サイトには、学習のためのリソースが豊富に用意されています。チュートリアルでは、ニューラルネットワーク構築の解説を読みつつ、最初の機械学習モデルを試すことができます。モデルなどの例を確認することができます。Library(DJL)がJava向けのディープラーニングライブラリとして知られていますが、それ以外にもあります。DagliDagliは、LinkedInが2020年に公開したJava向けの機械学習ライブラリです。Dagliを使用することで、JavaやJVM言語でニューラルネットワークを用いた機械学習に取り組むことができます。MXNetMXNetはディープラーニングのフレームワークであり、プログラミング言語Python、Scala、Julia、Clojure、Java、C++、R、Perlをサポートしています。そのため、JavaやScalaといったJVM言語でMXNetを用いて、ディープラーニングに取り組むことができます。JuliaJuliaは、2012年にはじめて公開された比較的新しいプログラミング言語です。2021年1月時点まででは、計算科学や数値解析の場面で比較的使用されている印象です。MXNet、Flux以外にもあります。ここでは、Genを紹介します。Genは、Juliaで構築された汎用の確率的プログラミングシステムです。PP)というのは、プログラミングのパラダイムの1つで、確率モデルを取り扱うのに適したプログラミング手法であるとされています。統計的モデルの取り扱い機械学習やディープラーニングの研究開発がより円滑になると期待されています。確率モデルをGenで書くチュートリアルに加え、GenTFというTensorFlowプラグインGenPyTorchというPyTorchプラグインがあります。確率的プログラミング言語としてのPyroやStanPythonの確率的プログラミングライブラリとしてのPyMC3などが注目されていることもあり、徐々に利用が広がっていると言えるかもしれません。SwiftSwiftは、2014年に発表されたプログラミング言語です。Swiftと言えば、アップルのOS上で動くアプリケーション開発に用いられるというイメージを持っている人は多いと思います。最近、Swift周りでのディープラーニング、機械学習環境が徐々に整備されてきています。TensorFlow(S4TF)は、2018年に発表されました。発表されてからまだそれほど時間は経っていませんが、少しずつ注目を集めている印象です。その理由は色々と考えられますが、ここでは微分可能プログラミングとの関係を見たいと思います。先ほど、確率的プログラミングとディープラーニング、機械学習について紹介しました。微分可能プログラミングというプログラミングパラダイムも、ディープラーニングと関係があります。Programming)は、簡単に言えば、自動微分といった技術によりプログラムを微分していくことができる手法です。ディープラーニングに取り組む際には、多くの場合、微分計算が必要です。そのため、微分機構を取り扱いやすくするプログラミングパラダイムである、微分可能プログラミングが、ディープラーニングの領域で期待されています。TensorFlowでは、微分可能プログラミングを用いてディープラーニングに取り組むことができます。TensorFlowには様々な機能がありますが、微分可能プログラミングを主要な強みとして打ち出しています。公式サイトから、チュートリアルSwiftの初心者ツアーカスタム自動微分などのリソースを参照できます。MLは、機械学習のフレームワークです。MLを使うことで、アプリ開発にディープラーニングを組み込みやすくなります。ML用に変換された様々なモデルを使用するなどの機能があります。画像モデルテキストモデル音声モデルなどいくつかのケースでの作成方法を確認できます。モデルなど多様なものがあります。目新しい開発など研究開発におけるブレイクスルーをもたらす可能性があると思います。TensorFlow(S4TF)などは、公開されてからまだそれほど時間が経過していません。TensorFlow、PyTorchとともに、ディープラーニングのエコシステムとして発展していく可能性はあります。DJL、GenやS4TFに興味が出た場合は、一度試してみるのもいいのではないでしょうか。コピーtudukeruをフォローするtudukeru小さく始めて、小さく続ける。今では色々な場面でデータを分析する機会があります。いった多角的な視点から、多くの要素があります。AIは、科学技術の分野で一大トピックです。社会全体に影響を与える研究や開発が進められています。参考になる情報源の紹介です。ディープラーニングを学ぼうと思ったときに、セットでPythonがイメージされることは多いと思います。このプログラミング言語を聞いたことはあるでしょうか。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。最近のコメントアーカイブ2021年8月2021年3月2021年2月2021年1月2020年12月2020年11月カテゴリーUncategorized小さく始めて、小さく続ける。小さく始めて、小さく続ける。最近のコメントアーカイブ2021年8月2021年3月2021年2月2021年1月2020年12月2020年11月カテゴリーUncategorizedタイトルとURLをコピーしました。