神經網路研究與應用這塊用python好還是matlab?

本科是生物技術,今年讀研啦,神經方向,想想學點以後在神經領域用得到得一些計算機知識。

完全是小白,望高人指點!!

===========================================================================

哎呦,你們都是夜貓子哦~

我還沒有選方向唉,有下面幾個大的領域可以選:

分子與細胞神經科學;發育神經科學;系統、計算與認知神經生物學;神經系統疾病

@池池提到了人工神經網路方向~

哇~

雖然可能是非計算方向,但是本人屬於那種生活中只有一塊領域閑不下來的那種人。

大學雖然是生物方向,但自從戒了遊戲之後,空餘時間至少自學入門了心理學和哲學大一的水平。

我同學是搞分子方向的,他昨天要拉我學Python,但我記得以前看ION的招聘信息里有提及MATLAB

@Vct Marine說MATLAB 在神經方面更成熟,而且自學資料多。書籍我不知道。。。

但是公開課我只搜到:

四川大學Matlab編程基礎及應用14講視頻更新完畢

聽說Python簡單易學,是真的嗎?而且coursera上有公開課唉:

Python交互編程入門(第 1 部分)

Python交互編程入門(第 2 部分)

人人都懂的編程課(Python)

目前,學它們對於我來說更多的是個人自學吧。

但還是對計算機專業知識缺乏了解,希望大神指點!


我目前用的是Python。

就我所知,Python有一個Theano庫可以利用GPU進行矩陣運算和符號求導,在此基礎上有PDNN等專門訓練神經網路的工具包(PDNN是我實驗室的同學開發的~)。

Matlab那邊我不了解,隨便搜了一下發現了一個Deep Neural Networks for Matlab。因為沒有用過,所以不好評價。


做傳統的神經網路(非深度學習)的話,建議用MATLAB。

做深度學習的話,建議使用Python。以前有一個MATLAB版的深度學習包,最近看了一下,發現它是這麼寫的:

「This toolbox is outdated and no longer maintained.

There are much better tools available for deep learning than this toolbox, e.g. Theano, torch or tensorflow

I would suggest you use one of the tools mentioned above rather than use this toolbox.」

所以,做深度學習的話,還是用Python吧。


一般的講,如果只是做做模擬,matlab更好,無他,現成的模塊,大量的參考代碼,以及簡單爆了的語法規則,面向過程的程序設計。儘管python也有大量模塊代碼,但畢竟是OO,要用好還是有學習梯度的。

但是一旦有研究需要,包含大量自設計的模型,就會明白python是多麼方便省事了。語言自身的靈活性給自行設計模型提供了極大的方便,這一點matlab能做到,但是很費事。而且做大工程,多人協作等,python比matlab有更多優勢。


疑,生物裡面的神經方向和機器學習的神經網路是一回事的嗎?


上手用matlab體驗,有性能需求轉py,甚至其它。


看個人吧,我最初都是matlab,但是需要自己手工推導求解。python的thaeno庫可以自動求導,但是入門較難。


毫無疑問matlab 。

Python主要是給碼農提供腳本環境的,基本都是互聯網公司搞運維的低端碼農在用。但因為開源免費,慢慢往學術屆滲透,多了很多與科學計算有關的包。

Matlab主要就是提供一個通用的數值計算平台,給靠發paper吃飯的學術民工用。官方發布的matlab工具箱在穩定性,易用性,特別是官方文檔和教程這方面,不是其它一些野雞語言和包能比擬的。當然matlab價格也不便宜...題主要昧著良心用盜版的話,別忘了以後自己當老師後給自己學生買正版哦。

補充一下,matlab的集成開發環境非常棒,跟蹤代碼查錯時相當方便——你發paper不需要像碼農做產品那樣對你代碼做單元測試對吧,基本代碼跟幾遍跑不死就沒啥問題了。反觀Python,就算你用了pycharm這樣公認最牛的ide,能雙擊一下變數名就彈出一個excel風格的表顯示numpy包中的矩陣么?(更新:好吧,最新的pycharm 4 已經支持看numpy的矩陣了...) 你實驗室童鞋用matlab寫代碼驗證思路,論文都被接受了,你還在Python里瞎折騰,被一個開源野雞庫里不為人知的bug折騰得死去活來又調不通...

擦,匿名還不讓評論別人答案,以下是評論第一個答案的:

你都說了matlab不了解還隨便搜一個放這,好生不負責任哦。開個玩笑。matlab還是用來開發新演算法用的。Hinton的DBN就是用Matlab寫的,在mnist上都要跑兩周,但人家能發science不是-_-


傳統的神經網路你用用matlab還行,但是深度學習還是用tensorflow吧,github上那麼多項目,有些很有趣啊,拿來代碼改改就能為自己所用,多開心的事情啊


當然是Matlab。當然你要有足夠的信心覺得自己學術做的牛叉到僅靠Matlab做學術就能給自己混一張長期飯票,否則最好學一門正兒八經的編程語言


語言本身都是工具,matlab要推薦可以,前提自己用的是正版。

我不認為做什麼某個語言比較好這種言論,很無聊。

某個演算法實現用什麼語言好歸根結底是底層執行順序和內存管理的效率,還有開發的難易度的區別,純粹的討論某個語言是不是好根本沒意義,如果牛逼的話,自己用cpp或者java實現一套全分散式的深度學習框架也完全不是不可能的,所以討論matlab還是python有什麼意義呢,應用場景不一樣各自都有優缺點,


現在網路上有一批水軍在鼓吹Python語言,把所有的應用場景都套在Python實現上.

回到本題, 神經網路 是一批演算法 的集合,無所謂編程語言的.

常用於神經網路 應用的 有Mathlib(這個詞我不會拼),主要是科學計算方面

C++ 有相應的庫. Java也有相應的庫. PHP有相應的插件(源碼格式,可以用來學習).

而Python現在還只是一些初學者在根據演算法 寫幾個簡單的教學示例而已.

以前還有個應用領域,一直在鼓吹Python,就是爬蟲. 其實這東西都是PHP玩濫的小CASE,成熟的爬蟲方案幾乎都是PHP開發的.

這裡貼一段我自己重複創造的輪子:

/**

* 非同步爬蟲示例

*/

public function catcher()

{

$articles = [

"http://www.baidu.com",

"http://news.sina.com.cn",

];

$ret = "";

SCatcher::batch($articles, function (array $info) use ($ret) {

$ret .= $info["result"];

});

dump($ret);

}

以上SCatcher是我自己寫的一個簡單類.


用神經網路bp演算法如何進行參數辯識


不清楚你是想搞生物還是想搞計算機(演算法)裡面的神經網路,如果是後者,那麼得學cuda


咦?MATLAB在神經網路方面不是更成熟么


python 比較多。開源庫豐富。


我覺得這個問題有點像打籃球,科比和喬丹誰更厲害


推薦閱讀:

訓練網路時為什麼會出現loss逐漸增大的情況?
學習matlab人工神經網路,哪些書籍比較好?
MATLAB神經網路工具箱中newcf 和newff的區別?
深度學習cnn圖片預處理方式,為什麼乘以0.0167?
神經網路的訓練可以採用二階優化方法嗎(如Newton, Quasi Newton)?

TAG:Python | MATLAB | 神經網路 |