深度學習基本概念簡介(下)

更新於 發佈於 閱讀時間約 3 分鐘

在前一篇中提到,我們可以透過y= bx+w 來當作機器用來預測的函數。但有時如果函數太過簡單,函數與實際輸出的值之間的差距無論怎麼調整都會存在,也就是前一節提到的Model Bias問題。

為了解決沒有彈性的問題,就有了sigmoid函數

Sigmoid

當一條linear curve無法有效的預測我們需要的值,這時我們可以透過precise linear curve來得到我們需要的函數。

但是precise linear curve本身的函數是不容易寫出的,因此我們可以用sigmoid函數逼近該precise linear curve。

*precise linear curve: 一條由很多線段所組成的鋸齒線(constant + a set of linear curve)。

Sigmoid函數的定義:y = c * (1 / 1 + e-(b+wx) )

規則:

  1. 當w無限大,就會趨近於平線。改變W → 改變斜率
  2. 改變c → 改變高度
  3. 改變b → 平移shift
raw-image


Part 1. 尋找函數Function

我們把sigmoid函數套用到原本的函數中,就會變成

y = b + wx1 -> y = Σci sigmoid(bi + wix1)

y=b+Σwijxj -> y= Σci sigmoid(bi + Σwijxj),j是天數。 wijxj為不同天數的數據與權重參數。

  1. 將函數展開:

r1 = b1 + w11x1 + w12x1 + w13x3

r2 = b2 + w21x1 + w22x1 + w23x3

r2 = b3 + w31x1 + w32x1 + w33x3

  1. 將展開的公式以矩陣表示:r = b + wx
raw-image


  1. 最後乘上Ci加上b,就會得到預測的值y。同時我們也能將這個步驟轉為矩陣的方式表示:
raw-image

透過以上三個步驟,我們就能完成第一步的尋找函數function過程。

*我們要尋找的參數w,b,c可以統一變為θ矩陣,透過訓練資料找到最適合的參數值。


Part 2. 尋找讓Loss最小的參數θ

接著我們要尋找讓loss最小的參數,讓L(θ)的值可以最小,因此我們挑選一個θ0當作初始值,讓L對每個θi微分,就可以得到一組gradient。

因此每次更新的公式: θ1 = θ0 - g * learning rate。

那要更新多久呢?

  1. gradient = 0
  2. 不想做了為止。


使用Batch

不過通常,我們在做gradient decent的時候,偏向於把大量的訓練資料區分為好幾個batch(隨機區分即可),然後先利用batch1 將θ0更新成θ1,接著再把batch2的資料拿來將θ1更新成θ2

*把所有的batch更新過一次,被稱為1 epoch。


反覆進行Sigmoid,以得到最佳解

為什麼我們需要不斷地堆疊更多的sigmoid或是前面線性函數的層數?

因為我們在預測的輸出資料,通常不會精準的符合某個函數的圖形。因此我們需要透過不斷地堆疊,去近似於我們目標的模型,藉此找到預測的方程式。而這樣重複堆疊的過程,就是深度學習的由來。

我們也不一定要只使用一個sigmoid,當我們重複加上更多的sigmoid,也可以更優化模型。至於要做幾次(layer),這也由我們自己控制的部分(hyperparameter)。

-> 以上的步驟與以下的圖型,也說明了為什麼它被稱為神經網路,或是深度學習

(Deep的由來:很多hidden layer疊加在一起)

raw-image



參考資料:

Hung-yi Lee機器學習課程

深度學習基本觀念

Activation Function



avatar-img
1會員
37內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
dab戴伯的沙龍 的其他內容
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
主要在使用這兩種類型時常常會忘記,所以簡單整理一下內容 Stack Stack<Character> stack = new stack<>(); 屬於LIFO的特性,也就是先進後出的概念,因此所有動作通常是發生在top,可以想像成放球的瓶子,只有頂端一個開口可以拿最上面的那顆球。 可以使用
物件導向的概念不外乎-> 封裝、繼承、多型、抽象、介面 封裝:在初始化一個class時,將內容物用private的方式包起來,而另外提供接口去給外界使用,可達到保護其資料隱私。 private: 只有自己類別的成員能夠存取 public: 任何人都可以調用 protected: 其父類與子類
概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
主要在使用這兩種類型時常常會忘記,所以簡單整理一下內容 Stack Stack<Character> stack = new stack<>(); 屬於LIFO的特性,也就是先進後出的概念,因此所有動作通常是發生在top,可以想像成放球的瓶子,只有頂端一個開口可以拿最上面的那顆球。 可以使用
物件導向的概念不外乎-> 封裝、繼承、多型、抽象、介面 封裝:在初始化一個class時,將內容物用private的方式包起來,而另外提供接口去給外界使用,可達到保護其資料隱私。 private: 只有自己類別的成員能夠存取 public: 任何人都可以調用 protected: 其父類與子類
概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在某些情況下,別人提供的 Pretrained Transformer Model 效果不盡人意,可能會想要自己做 Pretrained Model,但是這會耗費大量運
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
前言 其實摸機器學習、深度學習也有一陣子了,雖然大致上都理解,不過有些細節若不是那麼清楚,我也沒仔細去弄懂。今天剛好在《強化式學習:打造最強 AlphaZero 通用演算法》這本書看到之前略過的幾個名詞,書中有解釋其背後代表的東西的功能,在此記錄下來,以後又忘掉時可回來查看。 正文 "激活
Thumbnail
本文將展示使用不同激活函數(ReLU 和 Sigmoid)的效果。 一個簡單的多層感知器(MLP)模型來對 Fashion-MNIST 資料集進行分類。 函數定義 Sigmoid 函數 Sigmoid 函數將輸入壓縮到 0到 1 之間: 特性: 輸出範圍是 (0,1)(0, 1)(0,1
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在某些情況下,別人提供的 Pretrained Transformer Model 效果不盡人意,可能會想要自己做 Pretrained Model,但是這會耗費大量運
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
前言 其實摸機器學習、深度學習也有一陣子了,雖然大致上都理解,不過有些細節若不是那麼清楚,我也沒仔細去弄懂。今天剛好在《強化式學習:打造最強 AlphaZero 通用演算法》這本書看到之前略過的幾個名詞,書中有解釋其背後代表的東西的功能,在此記錄下來,以後又忘掉時可回來查看。 正文 "激活
Thumbnail
本文將展示使用不同激活函數(ReLU 和 Sigmoid)的效果。 一個簡單的多層感知器(MLP)模型來對 Fashion-MNIST 資料集進行分類。 函數定義 Sigmoid 函數 Sigmoid 函數將輸入壓縮到 0到 1 之間: 特性: 輸出範圍是 (0,1)(0, 1)(0,1