<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          筆記|李宏毅老師機(jī)器學(xué)習(xí)課程,視頻4回歸示例

          共 3987字,需瀏覽 8分鐘

           ·

          2021-03-27 05:51

           是新朋友嗎?記得先點(diǎn)數(shù)據(jù)科學(xué)與人工智能關(guān)注我哦~


          《學(xué)習(xí)筆記》專欄·第4篇

           | MLer

          1965字 | 6分鐘閱讀

          【數(shù)據(jù)科學(xué)與人工智能】開(kāi)通了機(jī)器學(xué)習(xí),大家可以相互學(xué)習(xí)和交流。請(qǐng)掃描下方二維碼,備注:姓名-ML,添加我為好友,誠(chéng)邀你入群,一起進(jìn)步

          感謝李宏毅老師的分享,他的課程幫助我更好地學(xué)習(xí)、理解和應(yīng)用機(jī)器學(xué)習(xí)。李老師的網(wǎng)站:http://speech.ee.ntu.edu.tw/~tlkagk/index.html。這個(gè)學(xué)習(xí)筆記是根據(jù)李老師2017年秋季機(jī)器學(xué)習(xí)課程的視頻和講義做的記錄和總結(jié)。因?yàn)檫@個(gè)視頻是在Youtube上面,有些朋友可能無(wú)法觀看,我把它搬運(yùn)下來(lái)放在云盤(pán)上面,大家點(diǎn)擊閱讀原文,就可以直接在手機(jī)隨時(shí)隨地觀看了。再次,感謝李老師的付出和貢獻(xiàn)。

          這門課,共有36個(gè)視頻,每個(gè)視頻播放的時(shí)間不一。我按著視頻播放的順序,觀看,聆聽(tīng)和學(xué)習(xí),并結(jié)合講義,做學(xué)習(xí)筆記。我做學(xué)習(xí)筆記目的有三:

          1 幫助自己學(xué)習(xí)和理解機(jī)器學(xué)習(xí)

          2 記錄機(jī)器學(xué)習(xí)的重要知識(shí)、方法、原理和思想

          3 為傳播機(jī)器學(xué)習(xí)做點(diǎn)事情

          視頻4:回歸示例

          一、梯度下降法尋找best function

          一個(gè)簡(jiǎn)單的一元線性回歸為例,演示梯度下降算法尋找best function的過(guò)程。

          程式采用Python3和Jupyter notebook 來(lái)示范。你若是要運(yùn)行這些代碼,請(qǐng)先構(gòu)建好Python和數(shù)據(jù)科學(xué)的工作環(huán)境,推薦安裝Anaconda軟件。

          代碼如下:

          1 導(dǎo)入所需Python庫(kù)

          import numpy as npimport matplotlib.pyplot as plt
          %matplotlib inline

          2 模擬數(shù)據(jù)設(shè)計(jì)和生成

          x_data = [338., 333., 328., 207., 226., 25., 179., 60., 208., 606.]y_data = [640., 633., 619., 393., 428., 27., 193., 66., 226., 1591.]
          # ydata = b + w * xdata

          3 窮舉b和w在一定范圍里面所對(duì)應(yīng)的Loss的值

          x = np.arange(-200, -100, 1) # biasy = np.arange(-5, 5, 0.1) # weightZ = np.zeros((len(x), len(y)))
          for i in range(len(x)): for j in range(len(y)): b = x[i] w = y[j] Z[j][i] = 0 for n in range(len(x_data)): Z[j][i] = Z[j][i] + (y_data[n] - b - w * x_data[n]) ** 2 Z[j][i] = Z[j][i]/len(x_data)

          4 利用梯度下降算法尋找Best function所對(duì)應(yīng)的最佳的參數(shù)w和b

          # 利用梯度下降算法# ydata = b + w * xdatab = -120 # initial bw = -4 # initial wlr = 0.0000001 # learning rateiteration = 100000 # 迭代次數(shù)
          # 記錄初始值,用于可視化b_history = [b]w_history = [w]
          # Iterationsfor i in range(iteration): b_grad = 0.0 w_grad = 0.0 for n in range(len(x_data)): b_grad = b_grad - 2.0 * (y_data[n] - b - w * x_data[n]) * 1.0 w_grad = w_grad - 2.0 * (y_data[n] - b - w * x_data[n]) * x_data[n] # update parameters b = b - lr * b_grad w = w - lr * w_grad # 記錄用來(lái)畫(huà)圖的參數(shù)值 b_history.append(b) w_history.append(w) # 繪制可視化plt.contourf(x, y, Z, 50, alpha=0.5, cmap=plt.get_cmap('jet'))plt.plot([-188.4], [2.67], 'x', ms=12, markeredgewidth=3, color='orange')plt.plot(b_history, w_history, 'o-', ms=3, lw=1.5, color='black')plt.xlim(-200, -100)plt.ylim(-5, 5)plt.xlabel(r'$b$', fontsize=16)plt.ylabel(r'$w$', fontsize=16)
          plt.show()

          結(jié)果1:

          橫縱表示bias的取值,縱軸表示weight的取值,不同顏色用于區(qū)分在(b,w)下的Loss值差異,顏色越深,表示Loss值越大。黃色的叉表示最佳的(b,w)。我們當(dāng)前的學(xué)習(xí)速率,經(jīng)過(guò)10萬(wàn)次迭代后,沒(méi)有找到最佳的(b,w),修改學(xué)習(xí)速率的值,放大10倍后,見(jiàn)結(jié)果2:

          我們發(fā)現(xiàn)離黃色的叉還是有一定距離,我們繼續(xù)把學(xué)習(xí)速率放大10倍,見(jiàn)結(jié)果3:


          此時(shí),已經(jīng)無(wú)法收斂到黃色的叉位置。我們?nèi)绾谓鉀Q這個(gè)問(wèn)題?這個(gè)時(shí)候要采用梯度下降算法的變體,對(duì)b和w采用不同的學(xué)習(xí)速率來(lái)更新參數(shù)的值,代碼如下:

          # 利用梯度下降算法# 給b,w 特質(zhì)化的學(xué)習(xí)率# ydata = b + w * xdatab = -120 # initial bw = -4 # initial wlr = 1 # learning rateiteration = 100000 # 迭代次數(shù)
          # 記錄初始值,用于可視化b_history = [b]w_history = [w]
          lr_b = 0lr_w = 0
          # Iterationsfor i in range(iteration): b_grad = 0.0 w_grad = 0.0 for n in range(len(x_data)): b_grad = b_grad - 2.0 * (y_data[n] - b - w * x_data[n]) * 1.0 w_grad = w_grad - 2.0 * (y_data[n] - b - w * x_data[n]) * x_data[n] lr_b = lr_b + b_grad ** 2 lr_w = lr_w + w_grad ** 2 # update parameters b = b - lr/np.sqrt(lr_b) * b_grad w = w - lr/np.sqrt(lr_w) * w_grad # 記錄用來(lái)畫(huà)圖的參數(shù)值 b_history.append(b) w_history.append(w) # 繪制可視化plt.contourf(x, y, Z, 50, alpha=0.5, cmap=plt.get_cmap('jet'))plt.plot([-188.4], [2.67], 'x', ms=12, markeredgewidth=3, color='orange')plt.plot(b_history, w_history, 'o-', ms=3, lw=1.5, color='black')plt.xlim(-200, -100)plt.ylim(-5, 5)plt.xlabel(r'$b$', fontsize=16)plt.ylabel(r'$w$', fontsize=16)
          plt.show()

          結(jié)果4:

          這時(shí)候,可以收斂到最佳的(b,w)位置了。


          思考題:

          1 梯度下降算法的權(quán)重更新,學(xué)習(xí)速率的設(shè)置會(huì)帶來(lái)什么影響?

          2 學(xué)習(xí)速率有哪些控制方法?


          代碼鏈接:

          https://github.com/wangluqing/MachineLearning/blob/master/ML_Course/regression_demo.ipynb


          朋友們,在學(xué)習(xí)中有什么問(wèn)題或者想法,請(qǐng)加入機(jī)器學(xué)習(xí)群,大家一起討論,共同進(jìn)步。


          每周一書(shū)

          1利用Python進(jìn)行數(shù)據(jù)分析

          2深度學(xué)習(xí)

          3Head First Python 中文版

          4Hands on XGboost

          5數(shù)據(jù)科學(xué)導(dǎo)論:Python語(yǔ)言實(shí)現(xiàn)


          課程視頻點(diǎn)擊                                         

          ↓↓↓

          瀏覽 29
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产久久草 | 欧美精品蜜桃69桔色 | 国产亚洲女午夜秀场 | 亚洲免费欧洲 | 国产伊人网在线观看 |