1. 程式人生 > >系統設計和機器學習演算法

系統設計和機器學習演算法

 

 

演算法訓練網站

 

提供了大量可以練習的網站:

     1、Leetcode 

     2、Geeksforgeeks 

     3、Hackerrank 

     4、Lintcode

 

 

系統設計

關注:系統設計、面向物件的設計、資料庫模式設計、分散式系統設計、大型系統架構可擴充套件性等案例研究相關文章

去深入瞭解整個系統的設計,包括整個讀/寫流程、如何保證很強的一致性、次要/主要壓縮起到作用、LRU 快取和 Bloom Filter 的作用等.

 

可以將 HBase 和 Cassandra 進行比較,設計上的相似點和不同之處

許多部落格也能提供很多知識,比如 Hacker Noon、一些公司的工程部落格以及開源專案的官方文件

機器學習

經典教材:

《The Elements of Statistical Learning》

《Pattern Recognition and Machine Learning》

 

 基本概念:偏差/方差權衡、過度擬合、梯度下降,L1/L2 正則化、貝葉斯定理、協同過濾、降維

 常用公式與模型推導:貝葉斯定理、邏輯迴歸、支援向量機

 簡單的模型:決策樹、 K 均值聚類

 

 機器學習產品的過程:

 1、確定目標:預測、推薦、聚類、搜尋

 2、使用正確的演算法:監督與無監督、分類與迴歸、廣義線性模型/決策樹/神經網路等,使用知道的原因

 3、選擇模型效能指標

 4、生產優化模型

 

 

使用 Spark MLlib 和 XGBoost 簡單地呼叫 API 訓練出一個模型,研究 Stochastic gradient descent 適合分散式訓練原因,

知道GBoost 和 GBDT 的區別原理。

 

核心原理的技能

  • 數學:微積分,統計學,線性代數
  • 周邊學科:資訊理論基礎
  • 推薦演算法: CF,LR,SVM,FM,FTRL,GBDT,RF,SVD,RBM,RNN,LSTM,RL
  • 資料探勘:分類,聚類,迴歸,降維,特徵選擇,模型評價
  • web服務: tornado, django, flask
  • 資料儲存: redis, hbase, cassandra, mongodb, mysql, hdfs,hive, kafka, elasticsearch
  • 機器學習/深度學習: Spark MLib,GraphLab/GraphCHI,Angel,MXNet,TensorFlow,Caffe, Xgboost,VW,libxxx
  • 文字處理: Word2vec,Fasttext,Gensim,NLTK
  • 矩陣分解: Spark ALS,GraphCHI,implicit,qmf,libfm
  • 相似計算: kgraph, annoy,nmslib, GraphCHI, columnSimilarities(spark.RowMatrix)
  • 實時計算: Spark Streaming, Storm,Samza

 

 評估開發人員所有技能的最好方法,

1、制定目標和計劃

1、保持好奇心

2、勇於研究,敢擔當責任

3、良好的執行能力

 

二、數學知識

2.1 【AI_數學知識】數學分析

2.2 【AI_數學知識】概率論

2.3 【AI_數學知識】線性代數


三、機器學習

3.0 【AI_機器學習】基礎知識

3.1 【AI_機器學習】K-近鄰演算法

3.2 【AI_機器學習】決策樹

3.3 【AI_機器學習】樸素貝葉斯

3.4 【AI_機器學習】邏輯迴歸

3.5 【AI_機器學習】SVM

3.6 【AI_機器學習】AdaBoost元演算法

3.7 【AI_機器學習】隨機森林演算法

3.8 【AI_機器學習】樹迴歸

3.9 【AI_機器學習】神經網路

3.10 【AI_機器學習】隱馬爾科夫


四、深度學習

4.1 【AI_深度學習】CNN 卷積神經網路

4.2 【AI_深度學習】RNN迴圈神經網路

4.3 【AI_深度學習】GANs生成對抗網路