圖演算法培訓
A. 演算法該怎麼學感覺好難
很多人都會說"學一樣東西難",一開始我也覺得很大程度是因為每個人的智力水平等等不可改變的因素. 但是後來我發現,有一個東西也很能決定一個人是否會覺得一樣東西難學,那就是理解方式.
一件事物通過不同的途徑讓一個人理解效果差異是很大的.就比如說數學裡面教你一個圓,有的人看到一個圓就能很快明白什麼是圓,有的人卻非得看到x^2+y^2 = r^2這種式子才有感覺,甚至有的人需要"到定點距離為定長的點集"這種描述才能理解. 那這個不一定是說誰的智力水平更高,而是因為他們對不同形式事物的敏感程度不同.
回到演算法上來.演算法本質是一種數學.他是抽象的操作集合.(看這么說你可能會覺得不知所雲,但是如果我說他只是一種解決問題的辦法可能就好理解). 所以很多書,論文,或者很多老師教的都是一種數學描述的演算法,這樣子的演算法就我個人而言相當難理解,看了就想到代數高數什麼的.. 但是如果找一個圖文並茂的解釋,或者找個人一步一步把一個演算法給你我比劃一下,我立刻就能理解. 說白了,就是你一定要找很多很多不同的角度來嘗試接受一種東西,你一定可以找到一種你相當敏感的角度,用這個角度學習你就會游刃有餘. 智力因素並沒有太大影響的.
具體點說,你可以試試這幾種不同的角度.
直接看數學形式的演算法.我個人最無法接受的形式,但是有人很喜歡..例子就是演算法導論上面那種描述.
聽一般語言描述,最理想是找一個明白的人,給你用通俗語言講講原理.這個不錯,很多我是這么理解的
圖形理解,叫理解的人給你畫插圖,分布圖,結構圖等等,來分解一個演算法,找到他的思路.說到圖,有一個人的博客這方面做得很好:matrix67.
程序理解.找到一種演算法的實現程序,對著程序理解,可以嘗試分布運行,觀察一下變數的變化,這樣來理解演算法.
實在太難的演算法,可以邊寫邊改來理解.當時我學習插頭dp的時候就是這樣,不論怎麼總是一知半解,最後硬著頭皮寫了一遍,改了很久,但是改過了的時候,也就真的明白了是怎麼回事了.
也許還有別的什麼辦法,因為人對事物的接受角度實在是太多了.多想想你平時學習什麼比較容易,找出你最敏感的理解方式就行了.
有感而發說的一些東西,不一定都是正確的,只供參考,歡迎指正.
B. 怎樣考圖像演算法工程師
本科生、數學基礎差,做圖像演算法工程師?別說圖像演算法,什麼演算法恐怕暫時都不能勝任。建議:1.一個讓本科生做演算法工程師的公司,技術上不會太有前途,要不換部門,要不換公司;
2.如果有興趣,願意繼續干圖像,從基礎學起,重點突擊矩陣理論、隨機過程等數學,這些東西不過關,很難理解(很難看懂)圖像處理中的概念、演算法
C. 圖像演算法工程師待遇高嗎
的確算得上是一個入演算法坑的黃金時間,曾經的條條大路通 CS 變成了條條大路通 AI,不管你曾經讀的是物理還是生物,化學還是數學,只要你會 Python,會統計學基礎,那時的我都會推薦你們來試一試加入演算法這個坑,我也抱著體驗的心態開了幾次知乎 Live 都講了一些關於演算法入門相關的課,按那時候來講,只要你「思路正常,邏輯清晰,吃苦耐勞,肯學習」,在演算法這個坑裡摸滾帶爬四五年到現在,你要是在大廠,基本上都能拿到這個數,放一張最近的圖可供參考。
圖片引用至 @曾加 ,可以參考這位大佬的最新文章:
曾加:最新!互聯網大廠各職級薪資對應關系圖(2020年初)
zhuanlan.hu.com
圖標
以我熟悉的阿里為例,文中所說的二三十人團隊,那基本上就一個P8主管,下面再拆成2-3個小組,每個小組有一個P7/8帶隊,帶著一群P5-P7幹活。這就基本構成了阿里的一個最小組織單元,每年的績效和獎金大體上都是由這位P8主管決定的,所以我們一般尊稱為老闆……
扯遠了,其實我想表達一點,如果現在再有人來問我,學了 Python 之後怎麼樣加入演算法坑比較好,我的建議是不加入。
我們常說的演算法,本質上是統計,而統計是基於大數據的。目前能真正擁有大數據基建的企業其實並不多,能通過演算法產出新價值的就更少,所以看起來搞 AI 的風風火火,其實大部分都是投資人含淚投的錢,背後能賺錢的少之又少,即便是在大廠也不例外。
所以一個目前仍不賺錢的行業,沖著心中偉大的理想和抱負,會像招開發那樣花重金吸納大批人才嗎?答案明顯為否,其實只需要花重金留住頂尖的演算法人才即可,調包調參的 AI 選手無論何時都可以招得到,而目前大部分通過自學、培訓機構出來的 AI 人才,就是這樣的 tool boy。
巧的是,曾經我也是這樣的 AI 選手,但誰叫我運氣好,混得好不如混得早,現在轉去數據分析那可就是降維打擊了(手動狗頭
最後再概括一下,今年是 2020 年,如果想從事演算法和數據行業,建議先讀一個相關專業的碩士,比如數據挖掘、圖像識別等,且學校不能太非主流,不然可能簡歷面都過不了。
D. 關於演算法的學習
由於之前搞過2年的ACM競賽,就給你講講我的個人經驗吧。
首先學習演算法,最好要對演算法感興趣,我之前就是因為學了演算法然後去參加競賽,從做題中獲得成就感,所以越學越有興趣。
剛開始學的話,可以先看些中文教材,最好先把數據結構學好,清華出版社的《數據結構》就可以了。演算法的書可以看王曉東的《演算法設計與分析》,吳文虎的教材也不錯。
之後可以看些英文的經典教材,比如《演算法導論》,如果覺得數學功底不夠,書的後面有數學知識的補充。
演算法的學習比較枯燥,要靠一些有意思的題目來輔助,《編程之美》這本書裡面有很多有意思的面試題,都是演算法相關的,推薦看一下。
其實最好還是參加些競賽,比如ACM,平時也可以到一些在線答題系統去做題,比如poj.org。經常跟牛人討論些題目,進步會很快的。
歡迎來玩演算法~
E. 成為演算法工程師需要學習哪些課程
演算法工程師要求很高的數學水平和邏輯思維。需要學習高數,線性代數,離散數學,數據結構和計算機等課程。
專業要求:計算機、電子、通信、數學等相關專業;
學歷要求:本科及其以上的學歷,大多數是碩士學歷及其以上;
語言要求:英語要求是熟練,基本上能閱讀國外專業書刊;
必須掌握計算機相關知識,熟練使用模擬工具MATLAB等,必須會一門編程語言。
國內外狀況
國內從事演算法研究的工程師不少,但是高級演算法工程師卻很少,是一個非常緊缺的專業工程師。
演算法工程師根據研究領域來分主要有音頻/視頻演算法處理、圖像技術方面的二維信息演算法處理和通信物理層、雷達信號處理、生物醫學信號處理等領域的一維信息演算法處理。
F. 圖像處理 機器學習方面 的優化演算法 怎麼學習
先從牛頓下降法學起,然後各種機器學習方面的優化演算法都是從此發展而來的,遺傳演算法,退火演算法,蟻群演算法等等智能演算法。圖像處理還有常用的一些演算法也要掌握,比如角點法這些,也要下功夫去學習,不能偏廢
G. 如何自學圖像演算法工程師
因為我學的就是計算機軟體專業,所以我可以告訴你:你會 C 語言編程固然很好,但是如果僅僅依靠會 C 語言編程,想成為某一個具體領域的工程師(例如:計算機圖像處理、或者是語音識別、漢字手寫體識別等),那是絕對不可能的。
你還必須要學習其他的很多理論課程。例如:各種數學(高等數學、高等代數、概率統計、離散數學等)的學習就是必不可少的,因為在進行計算機圖像演算法程序設計時,就百分之百需要依靠建立數學模型。如果沒有扎實的數學基礎,就無法建立數學模型,那麼即使會熟練使用 C 語言編程,那麼也是無法成為一個合格的圖像演算法工程師。
另外,還有計算機軟體的其它專業課:數據結構及其各種演算法、計算機圖形學等都是必須要熟練掌握的。
H. 圖像視覺演算法(深度學習)和SLAM演算法哪個更有前景啊
vSALM(Visual SLAM)能夠在跟蹤攝像機(用於AR的手持或者頭盔,或者裝備在機器人上)位置和方位的同時構建三維地圖. SLAM演算法與ConvNets和深度學習是互補的。SLAM關注幾何問題,而深度學習主要關注識別問題。如果你想讓機器人走到冰箱面前而不撞到牆,就用SLAM。如果你想讓機器人識別冰箱里的物品,就用ConvNets。http://openmvg.readthedocs.io/en/latest/
SLAM相當於實時版本的SFM(Structure From Motion)。vSLAM使用攝像機,放棄了昂貴的激光感測器和慣性感測器(IMU)。單目SLAM使用單個相機,而非單目SLAM通常使用預先標定好的固定基線的立體攝像機。SLAM是基於幾何方法的計算機視覺的一個主要的例子。事實上,CMU(卡內基梅隴大學)的機器人研究機構劃分了兩個課程:基於學習方法的視覺和基於幾何方法的視覺。
SFM vs vSLAM
SFM和SLAM解決的是相似的問題,但SFM是以傳統的離線的方式來實現的。SLAM慢慢地朝著低功耗,實時和單個RGB相機模式發展。下面是一些流行的開源SFM軟體庫。
Bundler: 一個開源SFM工具箱,http://www.cs.cornell.e/~snavely/bundler/
Libceres: 一個非線性最小二乘法庫(對bundle adjustment問題非常有用),http://ceres-solver.org/
Andrew Zisserman's多視圖幾何Matlab函數庫,http://www.robots.ox.ac.uk/~vgg/hzbook/code/
vSLAM vs 自動駕駛
自動駕駛汽車是SLAM最重要的一個應用領域。未來很多年裡,在自動駕駛領域將持續地研究SLAM。
I. 零基礎入行圖像演算法工程師需要學習哪些課程
我們實驗室就是做FPGA圖像處理的。建議你學習一下《信號與系統》,《數字信號處理》。然後學習一下岡薩雷斯寫的《數字圖像處理》那本書。有了基礎之後,選定一個方向進行具體研究。圖像處理的方向比較多,圖像增強,圖像復原,圖像壓縮,圖像分割等等。個人感覺FPGA做圖像預處理(譬如圖像去噪)比較好,如果涉及較為復雜的演算法,用FPGA就需要深厚的功底。畢竟FPGA的計算能力不強。總之,你先把基礎打好,然後選定一個喜歡的方向深入研究。FPGA只是實現的工具。
J. c++中圖演算法是什麼如果只是BFS和DFS,我都已經會了是不是該學習樹演算法啊
最小成本生成樹的演算法?
最短路徑問題?
其實就是圖到樹的轉換,在考慮最小或者最大問題.