探索 Swift 自動微分實作 - John Lin === {%hackmd FGRWt1UuTFKk0wSbGgg-SA %} > 請從這裡開始 ## YouTube {%youtube zynVdjxDjlY %} * Swift for TensorFlow 目標是Deap Laerning 讓寫AI 變簡單 * 什麼是AI -> 圖像辨識 * Neural Network , 模擬人腦的運作方式, Real Neuron (神經網路) * Artificial Neuron 加總向量 * 將 Artificial Neuron 串起來,結合成 Train Network * 預測給定的Input 是屬於哪一個分類 ### How to know which Direction to move for the weight? Neural network 實際上有兩種input (weight, training data) 的巨大函數 ### Linear regression with AI ``` swift var weight: SIMD<Float> = .random(in -1...1) ``` - 透過 cost function 的微分,尋找谷底,也就是區域的最佳解。 - 查找 wiki 時,可以選擇 "simple English" 😛 Main.SWift -> AST -> SILGen -> LLVM IR -> machine code ![](https://i.imgur.com/SLxoUyb.jpg) Parser -> Type Checker -> SILGen -> Mandatory Passes -> Opimization Passes -> IRGen -> LLVM ![](https://i.imgur.com/vnOHjA8.jpg) ![](https://i.imgur.com/OUmBSsM.jpg) ![](https://i.imgur.com/vurHDl6.jpg) ![](https://i.imgur.com/Rdx1bmv.jpg) ![](https://i.imgur.com/wYawGBv.jpg) ![](https://i.imgur.com/PwsqkOD.jpg) ![](https://i.imgur.com/tsxz7K7.jpg) ![](https://i.imgur.com/s3GXETB.jpg) ![Uploading file..._s51cplf0b]() ![](https://i.imgur.com/NTGXM3s.jpg) ![](https://i.imgur.com/SDB8xS0.jpg) ![](https://i.imgur.com/4EAjiw4.jpg) ![](https://i.imgur.com/vjKqsPs.jpg) ![](https://i.imgur.com/hMXgEGw.jpg) ![](https://i.imgur.com/eEZWAj6.jpg) ![](https://i.imgur.com/SFrzKKM.jpg) ![](https://i.imgur.com/7KsypX2.jpg) ![](https://i.imgur.com/bNj03YF.jpg) ![](https://i.imgur.com/gXI6wSQ.jpg) ![](https://i.imgur.com/biFHJ2B.jpg) ![](https://i.imgur.com/6HikWR1.jpg) ![](https://i.imgur.com/deSlepA.jpg) ![](https://i.imgur.com/id3KYvN.jpg) ![](https://i.imgur.com/VFO9wiF.jpg) ![](https://i.imgur.com/QfEtMKr.jpg) ![](https://i.imgur.com/fhICKo9.jpg) ![](https://i.imgur.com/rtp25Hr.jpg) 結論: Swift 將會內建自動微分功能 Resources: * [Swift for Tensorflow](https://www.tensorflow.org/swift) * 已經有 mega proposal 要把它整合進一般的 swift, 未來在可能在 iOS 上也能用 ###### tags:`iPlayground2019`