「人工智慧」深度學習代碼教程:簡單線性回歸擬合,送源碼!

2021-01-10 編程高手傑瑞

每天更新教程,記得關注《編程高手傑瑞》哦!

人工智慧——深度學習

要說當前熱度最高的領域,非人工智慧領域莫屬。人工智慧(Artificial Intelligence,AI)是指計算機像人一樣擁有智能能力,是一個融合計算機科學、統計學、腦神經學和社會科學的前沿綜合學科,可以代替人類實現識別、認知,分析和決策等多種功能。

人工智慧的意義是:為機器賦予人的智能,而機器學習是實現「為機器賦予人的智能」的一種方法,深度學習則是一種實現機器學習的技術,準確來說,深度學習並不等於人工智慧,它只是人工智慧的一個子集而已。目前用來實現深度學習的框架有谷歌的TensorFlow、Facebook的Torch、Keras、Mxnet,除此之外還有百度最近開源的PddlePaddle Fluid框架等。

今天傑瑞就利用TensorFlow深度學習框架教大家如何解決一個簡單的線性回歸擬合問題。

教學

我們需要用到tensorflow框架和numpy數學庫,如果各位同學沒有安裝tensorflow框架和numpy數學庫的話,可以跟著以下步驟來安裝。

使用pip命令進行安裝:

在控制臺輸入:pip install tensorflow命令即可安裝tensorflow框架

在控制臺輸入:pip install numpy即可安裝numpy數學庫

已安裝完畢

首先導入tensorflow、numpy模塊。

將要預測的表達式

我們預測的表達式為:y = x*0.3 + 0.1,其中weights等於0.3,biases等於0.1,在這個模型中,我們需要預測出weights和biases的值,所以我們給出這樣組訓練數據[x1,x2,x3,x4……,x19,x20]、[y1,y2,y3,y4……,y19,y20],這兩組數據裡面,很明顯我們能看得出裡面的關係是:yi = xi*0.3+0.1,但現在我們要做的是讓機器能夠從這兩組數據裡面學習到,weights等於0.3,biases等於0.1。

接下來,我們使用numpy生成我們需要的訓練數據,在這裡傑瑞使用numpy.random.rand()方法生成一個擁有100個元素的行向量。numpy.random.rand()可以返回一個或一組服從「0~1」均勻分布的隨機樣本值。隨機樣本取值範圍是[0,1)。

下圖就是生成的行向量:

開始設計網絡結構

接下來我們開始設計網絡結構,這個模型的網絡結構非常簡單,我們只要實現y=x*0.3+0.1這個表達式就行了。所以,傑瑞使用tensorflow.Variable()方法分別生成weights和biases。注意,在tensorflow中,所有的變量都需要用.Variable()方法聲明,否則將無法正常使用。

這個是我們所使用的損失函數表達式(最後將整個行向量求平均值):

開始訓練

結構設計完成之後就開始訓練了,傑瑞在這裡進行400次訓練,然後每20步輸出當前的weights和biases的值,從下圖中可以看到,隨著訓練步驟的增加weights和biases越來越接近0.3和0.1。

源碼獲取

先關注《編程高手傑瑞》並點讚該文章,源碼地址將在評論區給出,請注意相關信息。

相關焦點

  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。
  • 入門| 從線性回歸到無監督學習,數據科學家需要掌握的十大統計技術
    本文介紹了數據科學家需要掌握的十大統計技術,包括線性回歸、分類、重採樣、降維、無監督學習等。不管你對數據科學持什麼態度,都不可能忽略分析、組織和梳理數據的重要性。Glassdoor 網站根據大量僱主和員工的反饋數據製作了「美國最好的 25 個職位」榜單,其中第一名就是數據科學家。
  • 深度學習的可解釋性研究(一):讓模型「說人話」
    大概是以比如 1/(e^-(2*1/(e^(-(2*x+y))+1) + 3*1/(e^(-(8*x+5*y))+1))+1) 是否大於 0.5 為標準(這已經是最簡單的模型結構了),這一連串的非線性函數的疊加公式讓人難以直接理解神經網絡的「腦迴路」,所以深度神經網絡習慣性被大家認為是黑箱模型。
  • 8 種進行簡單線性回歸的方法分析與討論
    8 種進行簡單線性回歸的方法分析與討論 Tirthajyoti Sarkar 發表於 2018-01-05 08:18:57 本文中,作者討論了 8 種在 Python 環境下進行簡單線性回歸計算的算法,不過沒有討論其性能的好壞
  • Python環境下的8種簡單線性回歸算法
    GitHub 地址:對於大多數數據科學家而言,線性回歸方法是他們進行統計學建模和預測分析任務的起點。但我們不可誇大線性模型(快速且準確地)擬合大型數據集的重要性。如本文所示,在線性回歸模型中,「線性」一詞指的是回歸係數,而不是特徵的 degree。
  • 普林、DeepMind新研究:結合深度學習和符號回歸,從深度模型中看見...
    為什麼麥克斯韋方程組被認為是科學事實,而深度學習模型卻只是數據插值呢?舉例來說,深度學習的確無法具備符號物理模型那麼好的泛化性。然而,到底是什麼使簡單的符號模型具備描述世界的強大性能呢?從純粹的機器學習角度來看,符號模型有其自身的優勢,比如模型緊湊、具備顯式可解釋性,以及泛化性優異。
  • 入門| 貝葉斯線性回歸方法的解釋和優點
    本文對比了頻率線性回歸和貝葉斯線性回歸兩種方法,並對後者進行了詳細的介紹,分析了貝葉斯線性回歸的優點和直觀特徵。我認為貝葉斯學派和頻率學派之間的紛爭是「可遠觀而不可褻玩」的學術爭論之一。與其熱衷於站隊,我認為同時學習這兩種統計推斷方法並且將它們應用到恰當的場景之下會更加富有成效。
  • 原理+代碼|Python實戰多元線性回歸模型
    文章來源: 早起Python作者:蘿蔔前言「多元線性回歸模型」非常常見,是大多數人入門機器學習的第一個案例,儘管如此,裡面還是有許多值得學習和注意的地方。其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    近段時間以來,我們頻頻聽到「機器學習(machine learning)」這個詞(通常在預測分析(predictive analysis)和人工智慧(artificial intelligence)的上下文中)。
  • 人工智慧系列(六) 深度學習中的神經網絡
    原力君在系列的第五篇《人工智慧系列(五) 深度學習簡介》中提到深度學習可以看作是一種更高級的函數擬合方法;人工神經網絡、激活函數、代價函數、梯度下降、反向傳播是深度學習的幾個關鍵點;常見的深度學習神經網絡結構有多層感知機、DNN、CNN、RNN等。
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    如今 Python 如此流行的原因之一是其「原型設計速度」。在機器學習中,一種使用幾行代碼即可建模算法的語言絕對是必要的。微積分、線性代數、概率論在機器學習幾乎所有算法中不可或缺。如果你的數學背景很紮實,請跳過這一章節。如若不然,那麼重新溫習一下這些重要概念也不錯。考慮到理論的數量,我並不建議大家從大部頭開始。儘管一開始可以用它查詢具體概念,但是初學者先關注簡單的話題比較好。
  • 簡單線性回歸模型
    本期我們的主題便是通過R來解決線性回歸分析中的若干問題。2 基礎回顧回歸的概念來源於實際問題,那麼現在我們所說的線性回歸分析問題具體指的是什麼呢?3 求解線性回歸模型函數3.1 極大似然法最小二乘法和極大似然法都可以用來求解線性回歸模型,我們在往期文章中討論過最小二乘法,這裡對似然法進行簡單介紹。
  • 普林,DeepMind新研究:結合深度學習符號回歸,深度模型中看見宇宙
    如何將深度模型轉換為符號方程?來自普林斯頓、DeepMind 等機構的研究人員提出了一種解決方案:結合深度學習和符號回歸實現這一目標。符號模型是自然科學的語言。與深度模型不同,符號模型是緊湊的、可解釋的,同時具備良好的泛化能力。簡單的符號表達式卻是建模世界獨一無二的強大方式。
  • 線性擬合與曲線擬合,直接在圖上添加擬合曲線、擬合方程、判別係數...
    1、什麼是線性擬合?線性擬合,顧名思義,針對兩組數據或多組數據,找出一條最佳擬合直線,常用於處理與自變量呈線性關係的因變量。線性擬合是數據處理的常用方法,擬合的目的是對呈現一定數值關係的因變量與自變量找出最佳擬合方程,一般用線性回歸來實現。
  • R相關與回歸學習筆記(三十五)——樣條函數變換、線性可加模型(一)
    本筆記中原始數據及代碼均來源於李東風先生的R語言教程,在此對李東風先生的無私分享表示感謝。
  • 還不會使用PyTorch框架進行深度學習的小夥伴,看過來
    選自heartbeat.fritz.ai作者:Derrick Mwiti機器之心編譯參與:Geek AI、王淑婷這是一篇關於使用 PyTorch 框架進行深度學習的教程,讀完以後你可以輕鬆地將該框架應用於深度學習模型。
  • 回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R...
    該算法的形式十分簡單,它期望使用一個超平面擬合數據集(只有兩個變量的時候就是一條直線)。如果數據集中的變量存在線性關係,那麼其就能擬合地非常好。在實踐中,簡單的線性回歸通常被使用正則化的回歸方法(LASSO、Ridge 和 Elastic-Net)所代替。正則化其實就是一種對過多回歸係數採取懲罰以減少過擬合風險的技術。當然,我們還得確定懲罰強度以讓模型在欠擬合和過擬合之間達到平衡。
  • Python數據科學:線性回歸
    本次介紹:線性回歸:多個連續變量與一個連續變量間的關係。其中線性回歸分為簡單線性回歸和多元線性回歸。/ 01 / 數據分析與數據挖掘資料庫:一個存儲數據的工具。人工智慧/機器學習/模式識別:神經網絡算法,模仿人類神經系統運作,不僅可以通過訓練數據進行學習,而且還能根據學習的結果對未知的數據進行預測。/ 02 / 回歸方程01 簡單線性回歸簡單線性回歸只有一個自變量與一個因變量。
  • 一文教你全面掌握用Python實現線性回歸
    全文共4968字,預計學習時長15分鐘或更長本文旨在為讀者理解和應用線性回歸時提供參考。雖然線性回歸算法很簡單,但是只有少數人能真正理解其基本原則。本文首先會深入挖掘線性回歸理論,理解其內在的工作機制,然後利用Python實現該算法,為商業問題建模。理論線性回歸或許是學習統計學最簡單的方法。在學習更高級的方法之前,這是一個很好的入門方法。
  • 圖靈獎「擁抱」深度學習
    ACM 將本屆圖靈獎頒給了深度學習領域,並且讚譽三位獲獎人為「深度學習之父」。他們分別是:Yoshua Bengio,蒙特婁大學教授,人工智慧孵化器 Element AI 聯合創始人;Geoffrey Hinton,多倫多大學名譽教授,Google Brain 高級研究員;Yann LeCun,紐約大學教授,Facebook 首席 AI 科學家。