インターネットで調べると、deep learningやmachine learningはpython で実装されることが多いですよね。
他のライブラリに比べて圧倒的に多いようですが、それはなぜなのでしょうか?
ご存知の方がいらっしゃいましたら、ご教示ください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
私の勝手な推測ですが、numpyのおかげと思っています。
Pythonにはnumpyというライブラリがあります。このnumpyは数値計算を高速に行う事ができるライブラリです。通常、Pythonのようなスクリプト言語で数値計算を行うと、インタプリンタが色々としている分、C/C++に比べてどうしても遅くなってしまいます。しかし、numpyを使えば行列計算や高水準数学関数がC/C++並の速さで行うことができます。ディープラーニングと言ってもただの高度な計算の塊です。numpyを使えばC/C++並の速さでそれらを実現できます。速さの面で、Pythonは不利では無くなります。
では、C/C++ではなく、なぜPythonなのか?まずは、コンパイルがいらないことが一つです。ディープラーニングのような研究段階の途上にあるようなものは、何度も修正と実行が必要であり、その都度コンパイルすることはかなりの手間です。しかし、Pythonならすぐに試すことができます。そして、PythonであればC/C++のようにおまじないのような部分が少ないです。本当に重要な計算部分以外はなるべく簡易に、すばやく実装したいと考えます。そして、値の入力とか、計算部分以外は高速である必要は全くありません。C/C++の方がそういった部分が速くなりますが、Pythonに比べると注意深く書く必要があり、エラー処理とかを含めるとコード量も多くなってしまいます。Pythonであれば、計算部分に重心を据えてコーディングできるということです。
こうして多くの人がPythonとnumpyを使い、そういった人たちがもっと便利になるようなライブラリを同じくPythonとnumpy用に書き上げ、それらを使う人が同じようPythonとnumpyを使うという循環構造ができあがりました。それらの相乗効果によって、ディープラーニングをするならPythonという図式ができあがったのだと思われます。
投稿2016/04/25 22:32
総合スコア21737
0
ちょっと検索したらこんなQ&Aが見つかりました。
What is the best language to use while learning machine learning for the first time?
マシンラーニングの現役技術者たちがいろいろと述べていますが、全体的な意見としては圧倒的に Python 推しですね。その理由は、オープンソースプロジェクトとして最も多くのマシンラーニングライブラリ開発が進行中であること、必ずしもプログラミングの専門家ではない科学者たちにとって C/C++ よりもコーディングが容易であること、スクリプト言語ではあるがマシンラーニングに必要な計算ライブラリ等が高度にチューニングされていて高いパフォーマンスを発揮していることなどが挙げられていますね。
そもそもなぜ多くのオープンソースプロジェクトが立ち上がったのか、という点については、raccy さんも挙げていらっしゃる Numpy と、Scipy という2つのパッケージの存在が指摘されていました。また、R言語ベースの統計解析ライブラリとの連携がとても簡単という点も評価が高いようです。
マシンラーニングでつかわれるような高度に抽象化された数学的計算ライブラリとしてMatlabが有名ですが、これはとても優れた機能を提供している反面、ライセンスが高額(現在でも個人向けライセンスが約30万円/人)であることが難点と言われています。
マシンラーニングの基礎や応用分野の研究者たちは、潤沢な資金を持っていない学術研究者などが多くいますから、彼らにとってすべて無償で入手し、開発し、再頒布できるPythonは最適解だったのではないでしょうか。
投稿2016/04/25 23:27
総合スコア2425
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
人口知能 python
で google 検索してみました。
- 人工知能(AI)ならPython。その理由が分かった「みんなのPython勉強会」の夜 http://www.creativevillage.ne.jp/10524
...
(pythone は) 海外ではJava、C言語に次ぐ人気で、自動運転などのAIやビッグデータ解析の分野では欠かせなくなっているそう。
Rubyの思想とは逆で、コーディングの自由度を少なくしているから、初心者もエキスパートも無く、誰が書いても同じようなコードになる上、使えるライブラリが充実していることが魅力となっているとか。
作業効率が格段に上がるので、時間も開発費用も削減できるといういいことずくめ。なるほど。
...
オープンソースカルチャーのPythonは、いろいろな人たちと話し合って情報交換して、モチベーションが上がるものだ、と。
Pythonは、みんなで作り上げるというオープンソースの思想だからこそ、世界的に広がっている。
...
- なぜPythonが人工知能の開発に適しているのか https://de-liker.com/why-python-is-better-way-for-developing-ai.html
...
いくら実行が早くてもそのデータ入力やコーディング事態に時間がかかっていると本末転倒です。しかし、実行速度は犠牲にされるわけにもいかない。そのうまいところを突いているのがPython、というわけです。
...
- ワンピースに例えるプログラミング言語【Python】
http://kinocode.jp/new/2015/10/18/programming-language-5/
...
Pythonは誰がプログラミングしても、同じようなコードになるように設計されている!
...
書きやすく、可読性(人間が読みやすい)も高いコードがかけるので、海外の学校などで最初に教わるプログラミング言語としても使われる!
...
投稿2016/04/25 23:54
総合スコア22324
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/26 14:42
2017/07/07 18:36 編集