今天來大概認識一下那些Python套件跟人工智慧是做什麼的
注意:這篇文章可以當名詞解釋,可以大略看過一遍,需要的時候再搜尋就可以囉
對Python套件們跟人工智慧大框架有初步理解
由於Python套件實在太多,我們也沒必要一次全弄懂,所以我列出Python撰寫相關套件,大家也可以選有興趣的部分練習
數據搜集: BeautifulSoup, Scrapy...
網頁自動化,操控瀏覽器, 爬蟲: Selenium, Splinter, Requests, Lxml...
數據清理跟操作: Numpy, Scipy, Sympy, Pandas...
視覺化: Matplotlib, Seaborn, Plotly, Ggplot, Bokeh, Datashader, HoloViews, Cufflinks...
建模: Scikit-learn, TensorFlow, PyTorch, H2O.AI...
音訊處理: Librosa, Madmom, pyAudioAnalysis...
圖像處理: OpenCV-Python, Scikit-image, Pillow, SimpleITK, Mahotas...
圖片識別: Pytesseract...
資料庫: Psycopg, SQLAlchemy...
地圖應用: Folium...
網頁: Dijango, Flask, Dash, Web2Py, Bottle, CherryPy...
控制電腦: Pyautogui...
電子郵件模組: Smtplib...
編輯器: Spyder, Pycharm...
視窗化: Tkinter(單純視窗化), PyQt5(複雜視窗化), WxPython(介於前兩者視窗化), PySimpleGui, PySide2...
寫遊戲: Pygame, Pyglet, Panda3d, PyKyra, PyOpenGL...
寫APP: Kivy...
量子計算:Qiskit, QuTip...
自然語言處理: Nltk...
生物信息: Biopython...
天文學: Astropy...
Python2,3兼容包: Six, 2to3...
日期處理: Python-dateutil, Pytz...
Gradient boosting庫: XGBoost(之後章節會說明)...
監視進度: Tqdm...
編譯器: Numba...
平行計算: Dask...
包成exe: Pyinstaller...
DevOps工具: Ansible, Salt...
2020/5/15 更新
更詳細的可以參考:https://github.com/vinta/awesome-python
2021/8/15 更新
官網也很推:https://www.python.org/about/apps/
我們已經用過Anaconda,他包含的sklearn著重在機器學習:
Python 懶人包,包含上述套件, numpy, pandas…
含有機器學習套件Scikit-learn,編輯器Spyder,套件管理anaconda-navigator…
Python機器學習庫,包含六部分
包含python機器學習的models跟整理好的資料集
由Facebook維護,跟Google的Tensorflow打對台的深度學習框架
Caffee(UC Berkeley) -> Caffee2(Facebook)
Torch(NYU/Facebook) -> Pytorch(Facebook)
Theano(U Montreal) -> TensorFlow(Google)
Paddle(Baidu)
CNTK(Microsoft)
MXNet(Amazon)
Chainer(Preferred Networks)
可以用Tensorflow, Keras(Tensorflow2), Chainer或Pytorch還有Mxnet
機器學習框架:Sklearn, XGBoost…
深度學習第一代框架: Caffe(機器視覺常用), Torch(Lua), Theano(上手快)…
深度學習第二代框架: TensorFlow(有高階 API Keras:Google,易用), CNTK, Caffe2, MXNet(輕量,可移植), Paddle…
深度學習第三代框架: 命令式深度學習框架:PyTorch(Python,GPU加速), MXNet 的Gluon API, TensorFlow2…
不過這些都是之後的事了,現在只要知道他們都是拿來寫Python的
Numpy: 矩陣,線性代數,傅立葉轉換
SciPy: 為了實現matlab所有功能,建構在 NumPy 函式庫上
SymPy: SciPy 當中用來做符號運算的函式庫,可以用來計算微分、積分等等運算式
Pandas: 資料分析,建模,表格處理,裡面資料都像關聯式資料表形式
Matplotlib: 資料視覺化,也可以用seaborn繪製更精美的圖
Python包山包海,我想大家現在一定很亂吧,應用面太雜了,那我們跳脫應用面,從更直觀的方向出發吧
解決未知分類問題,不需訓練就能分類
https://zhuanlan.zhihu.com/p/139946395
給出資料跟標記,讓機器學習他們關係
資料都沒標記的情況,目的把相似的聚在一起
資料只有部分標記的情況,混合監督與非監督
不需要標籤,用現成訓練好模型預訓練,再微調,快速套用到目標任務,與半監督,遷移學習相關
模仿人類學習,一個模型能處理不同task
學習如何學習,在以上各方法前做預處理
用資料推些未知結果
從大量資料找到有用的資訊
用資料來分析都可以叫資料科學
目的是對電腦編程,使其可以理解圖像中的特徵或場景,計算機視覺同圖像處理,機器學習有很多共同的主題
是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認知、理解、生成等部分
從大量資料讓電腦有看起來像人(有智慧)的反應
強人工智慧:真正具有知覺,自我意識
弱人工智慧:透過數據規則或其他方式看起來有智慧
人工智慧的子集
不用明確撰寫程式規則,從過往資料(經驗)學習到其運算規則
討論各式不同函數與如何使用數據有效獲取函數參數的學科
機器學習框架,能有效幫助多個機構在滿足用戶隱私保護、數據安全和政府法規的要求下,進行數據使用和機器學習建模
機器學習的子集
分成輸入,隱藏,輸出三層,也稱2 layer NN,輸入層是第0層
各層間以激勵函式活化神經元
受生物啟發,它可以使電腦從觀測數據中學習
通過反向傳播算法用梯度下降訓練
主要是監督式學習
非監督學習演算法
隱藏層大於2以上的神經網路叫深度神經網路
機器學習的子集
它使用了多層次的非線性信息處理和抽象,用於有監督或無監督的特徵學習、表示、分類和模式識別
用深度神經網路做機器學習的方法叫深度學習
有特徵,缺乏反饋
深度學習是具有多級表示的表征學習方法(Representation Learning 如何自動找出表示數據的合適方式,以便更好地將輸入變換為正確的輸出)
一種實現機器學習的技術
神經網路隱藏層大於2稱為深度
機器學習的一類函數,通常為多層神經網路
有反饋,缺乏適應
機器在一個環境中可以選擇執行幾個動作,不同的動作會影響這個還境,結果(獎勵或懲罰)會回饋給機器,機器會一直往結果好的地方持續校正
有適應
把已學訓練好的模型參數遷移到新的模型來幫助新模型訓練數據集
將學習到的應用到目標領域解決深度學習耗時問題,能解決小數據或個性化問題
由於範圍太廣,所以我把範圍縮小到Python到kaggle,而在這最重要的是先知道整個進程由廣到深是
主軸: 人工智慧-機器學習/聯邦機器學習-人工神經網路-深度學習-強化學習-遷移學習
支線: 計算機視覺(Computer Vision, CV),自然語言處理(Natural Language Processing, NLP)
Numpy, Pandas 可以從這邊下載下來練習
https://github.com/eric999j/Udemy_Python_Hand_On
https://zh.wikipedia.org/wiki/Category:计算机视觉
https://zh.wikipedia.org/wiki/自然语言处理
https://mp.weixin.qq.com/s/sVts810Hyc-EqQj7JKHDMQ