Pythonは人工知能的な処理や、ディープラーニングに最適!

なんて話を聞きますが、Pythonには一体どんな機能、ライブラリが用意されているのでしょうか。

※ちなみに私は2018/3時点でPythonは全然知りません。

おそらく、言語的に特別特徴があるというよりも、ライブラリが豊富という事なのかなと思いますが、今回はその辺を調査してみました。

という事で、

背景

Pythonという言語の特徴を知り、人工知能処理に向いていると言われるゆえんを知りたい。

そして、私自身の個人的な開発生活に活かせるのであれば、ぜひ学びたい。

目的

・Pythonという言語の特徴を知る

・人工知能、ディープラーニングに最適と言われる理由を知りたい

調査

ネットで情報を集めてみる

まずはPythonについてネットで調べてみました。

今はネット上にかなりの情報が載ってますね〜。

さて、ざっくりとその特徴を見ていくと、やはり人工知能的な処理に向いている事が分かりました。

例えば、自然言語解析や、統計データを使用したパターン分析の様な事ができる(そういうライブラリが豊富にある)。

他の言語の場合は、現時点でそういうライブラリなどはあまり完備されていないので、確かにPythonが人工知能に向いているという理由はなんとなく分かる気がします。

ちなみに、他のサイト等でよく言われているのは、「機械学習」「統計解析」というキーワードです。

やはり、そういった処理ができるライブラリが豊富と紹介をされています。

また、Pythonという言語そのものの特徴としては、「たくさんのデータの中から特徴を抜き出すのが得意」という点がある様です。

細かい言語の仕組みまでは分からないのですが、大量のデータのマッチングや、探索処理などが得意な言語なのかもしれませんね。この辺は開発者としては知らなくても、使いこなす事は全然可能ですが。※大抵のSEはなぜそのシステムをその言語で作るのか?を明確に理解はしていないと思います。私自身も関わったシステムの事を全て理解はしてません。たぶん知っておいた方はいいけど。。。

Pythonの実行方法

Pythonにはバージョンがあり、Ver2、Ver3では言語そのものが大きく違うと言われています。

実際にまだ使ってないので、どの位違うのかは分からないのですが。。。

この辺は実際にPythonを使う機会があったら調べていきたいと思います。

で、本題の実行方法ですが、これまでに調べた情報だと「実行環境の構築」が必要な様子。WEB系の言語でもない限りは実行環境の構築は必須なんですけどね。。。

最近はやりのクラウド環境などを簡単に作れるという訳ではない様子。これも今後どうなるかは分かりません。

という訳で、クライアント環境で動かす事ができる言語である事は分かりました。

あと気になるのはWEBでの活用なんですが、cgi等にも対応はしているものの、PHPやJSなどに比べるとWEBに特化した言語ではない様に見えます。理解不足?

この辺はもう少し調べてアップデートの情報があれば内容を修正したいと思うのですが、今時点ではこんな所かなと思います。

人気の理由

Pythonが今人気となっている理由についても調べてみたんですが、やっぱり今社会的に求められている(これからの社会に影響を大きく与える)技術と非常に相性が良い。と言えると思います。

例えば、

・人工知能を活用したシステム

・仮想通貨の自動売買

・ディープラーニング

などなど、これから世の中として必要と言われているものをPythonによって再現しやすいという点があるんじゃないかと思います。Pythonを扱える技術者は年収が高いとも言われている様です。

分かった事

今回調べて分かった事は、人工知能やディープラーニングに最適な機能であるのは間違いないという事。

私も自然言語処理を行うシステムを、C言語、Java、VBA(大変だった。。。)などで作った事がありますが、これをもう少し簡単にできそうな感じです。

たぶんライブラリ自体もどんどん豊富になっていくんじゃないかなと思います。

で、WEB系に特化した言語には見えないので、WEBサービスを作る場合は、あくまでJSやPHPなども使いながらシステム全体を組み合わせていく様な形になるのかなと思っています。

ざっくりと調べた事なので、間違っている部分などもあるかもしれませんが、私自身、現時点ではそういう理解をしております。

WEB上で色々なデータを集めて、それをWEBサーバでそのまま処理をして、結果を書きだすみたいな事もできるのかと思ったんですが、それには、もう少し拡張が必要なのかなと思います。

また、人工知能やディープラーニングと言われるものは、個人レベルでも開発可能なのか、もしくは企業や大規模なチーム、大学などでないとなかなか再現ができないのか。などもよく分かりません。実際の所、個人でAIを作ってみた~という方などは、今はそんなに見当たらない印象です。今後は増えていく様な気がしますが。

この辺は少しずつ勉強しながら、より詳しい内容をお届けしたいなと思います。