快訊!我的新書今天開始可以在天瓏網路書店預購啦!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<

Machine Learning

  • 如何使用回撥(callbacks)來觸發訓練週期的結束

    在 TensorFlow 和 Keras 中,可以使用回撥 (callbacks) 來在訓練週期結束時觸發某些操作。回撥是一個類似於函數的物件,可以在訓練過程中的特定時間點被調用。 其中一種回撥叫做 ModelCheckpoint,它能在訓練的某個時間點保存模型的權重。另一種叫做 EarlyStopping,它能在訓練達到一定的準確率後停止訓練。 要在訓練週期結束時觸發回撥,需要在調用 fit() 或者 fit_generator() 時將它們添加為參數。 範例: 這樣的程式會在訓練結束後儲存權重並在驗證損失停止改善2次後停止訓練 通常,回撥可以根據您的需求進行自定義,並結合多種回撥以實現複雜的訓練流程。

  • ,

    如何從預先訓練的模型中提取特徵

    預先訓練的模型中提取特徵的一種常見方法是使用模型的中間層。例如,如果使用卷積神經網絡 (CNN) 來預訓練圖像識別模型,則可以使用 CNN 的某些中間層(如卷積層或池化層)來提取圖像的特徵。 另外,您可以將整個預先訓練的模型看作是一個特徵提取器。 一種方法是將輸入數據丟入預先訓練的模型中,然後使用模型的最後一層輸出 (通常是分類層) 作為特徵。 最後,您還可以使用深度學習框架中內置的函數(如 Keras 中的 model.predict())來提取特徵。 在使用預先訓練的模型提取特徵時,重要的是要注意模型是否符合您的任務,並且選擇適當的層和方法。

  • ,

    二元分類器 (binary classification) 介紹

    甚麼是二元分類器 二元分類 (binary classification) 是一種機器學習中常見的任務,其目的是從兩個不同類別中將每個數據樣本歸類為其中之一。這種分類方式只有兩個類別,因此其結果是二元的。例如,對於圖像分類問題,二元分類可能用於識別猫和狗的圖像,或者用於識別垃圾郵件和非垃圾郵件的電子郵件。 在二元分類中,我們通常使用一些算法來建立一個模型,如 logistic regression, decision tree, SVM, Random forest, neural network等 來預測每個輸入數據樣本屬於哪個類別。 當我們對新數據進行預測時,該模型將輸出預測類別 (0 或 1)。 在訓練階段,通常需要提供已經標註好類別的數據來訓練模型。並在測試階段使用該模型來預測新的數據的類別,並使用常見的度量指標來評估模型的效果如精確度, AUC-ROC, F1 score等 如果您需要分類多於兩個類別的數據,則需要使用多元分類…

  • ,

    Tensorflow裡ResNet(殘差網路)的介紹

    殘差網路ResNet 殘差網路(Residual Network,簡稱 ResNet)是一種深度卷積神經網路,它被設計用來解決深度神經網路中的梯度消失問題。 在深度神經網路中,隨著層數的增加,梯度有可能會越來越小,導致模型無法有效地學習。殘差網路通過在每一層中引入一個「殘差块」來解決這個問題。殘差块包含兩個卷積層和一個殘差路徑,殘差路徑將輸入數據直接加到輸出數據上。這樣,當殘差块的輸出數據與輸入數據相加時,梯度就不會被消失。 這邊是別人的文章介紹: https://ithelp.ithome.com.tw/articles/10264843?sc=hot 與Conv2D關鍵的不同 Conv2D就是一個提取圖片裡的特徵的方式,他是可以讓圖片也可以丟進Dense去找到共通特徵的一個關鍵,但是,Conv2D一定會需要與其他像是池化層、全連接層、輸出層等一起使用。 而殘差網路就是某個對ML非常熟的神人,所使用像是卷積層、池化層、連接層等,可有效降低梯度消失的問題的一個【已經建立好的模型】 例如: 以下為一個原始的TF模型的建立方式 ResNet使用範例 而使用ResNet非常的簡單,就使用別人已建立好的ResNet就可以了,以下範例中的 ResNet 使用了 20 個 ResidualBlock,每個 ResidualBlock 中使用了 64 個濾波器,卷積核大小為 3×3,步長為 2。…

  • ,

    PyCharm – 好用的python開發環境

    官方網站 https://www.jetbrains.com/pycharm/ 為什麼選擇PYCHARM 所有 PYTHON 工具集中在一處 提高生產力: 在 PyCharm 處理例程時節省時間。專注於更大的事情並採用以鍵盤為中心的方法來充分利用 PyCharm 的許多生產力功能。 獲得智能幫助: PyCharm 了解您的代碼的一切。依靠它實現智能代碼完成、實時錯誤檢查和快速修復、輕鬆的項目導航等等。 提升代碼質量: 編寫整潔且可維護的代碼,同時 IDE 通過 PEP8 檢查、測試協助、智能重構和大量檢查幫助您控制質量。 只需您所需要的: PyCharm 由程序員設計,為程序員而設計,旨在提供高效 Python…

  • ,

    TensorFlow 開發者認證計劃介紹

    TensorFlow認證計劃課程 以下為介紹網頁 https://www.tensorflow.org/certificate 在這個網頁當中,他們推薦了幾個課程 Udacity 的《TensorFlow 在深度學習中的應用簡介》課程 Coursera 的《DeepLearning.AI TensorFlow Developer 專業證書》 而我選擇了Udacity的課程(因為免費),而且可以有中文字幕 必備知識 為了順利完成考試,應試者應該了解以下知識: 機器學習和深度學習的基本原則 在TensorFlow 2.x 中構建機器學習模型 使用深度神經網絡和卷積神經網絡構建圖像識別算法、對象檢測算法、文本識別算法 使用不同形狀和大小的真實圖像可視化圖像的捲積過程,了解計算機如何“觀察”信息、繪製損失和準確率圖 探索防止過擬合的策略,包括增強和丟棄策略 在TensorFlow 中使用神經網絡解決自然語言處理問題 認證考試使用的工具…

  • 交叉熵相關損失函數的比較

    交叉熵(cross-entropy)是什麼 交叉熵是一種常用的測量兩個概率分布差異的度量。它可以用來衡量預測模型的輸出結果與真實標籤之間的差異,从而作為訓練模型的損失函數。 交叉熵的计算公式如下: H(y, y_pred) = – ∑ y log(y_pred) 其中 y 和 y_pred 分别表示真實標籤的概率分布和預測模型的輸出概率分布。 交叉熵有一些特性,使它特别适用于衡量分類問題中模型的預測結果與真實標籤之間的差異: 交叉熵越小,預測模型的輸出結果就越接近真實標籤,模型的預測能力就越強。 当預測模型的輸出結果完全符合真實標籤時,交叉熵等于零。 交叉熵是一個非負數,且在模型預測結果與真實標籤完全不同時,交叉熵最大。 交叉熵相關損失函數 有以下兩種 categorical_crossentropy sparse_categorical_crossentropy 兩者都是用於計算分類問題中模型預測結果與真實標籤之間的交叉熵的損失函數。但是它們有一些重要的區別。 1、在…

  • ,

    使用數據增強加強圖像辨識準確率

    數據增強 數據增強(Data Augmentation)是一種在不增加真實數據的情況下,通過對現有數據進行變化來增加數據集大小的方法。 請參見: https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator 常見的數據增強技術包括: 尺度變換: 對圖像進行放大或縮小。 旋轉: 對圖像進行旋轉。 平移: 對圖像進行平移。 剪裁: 對圖像進行剪裁。 翻轉: 對圖像進行水平或垂直翻轉。 調整亮度: 對圖像的亮度進行調整。 調整對比度: 對圖像的對比度進行調整。 通過使用這些技術,可以從現有的數據集中生成新的數據,以增加數據集的大小 使用數據增強的範例 – 使用ImageDataGenerator 以下為一個簡單範例…

  • ,

    模型的權重與偏差值

    神經元的權重與偏差 在神經網絡中,權重 (weight) 和偏差 (bias) 是模型的兩個重要參數。 權重 (weight) 指的是神經網絡中的輸入層和輸出層之間的連接強度。每個神經元都有一個權重矩陣,表示與該神經元相連的輸入張量的強度。輸入張量與輸出張量之間的權重越大,該神經元對輸出的貢獻就越大。 偏差 (bias) 指的是神經網絡中的偏移量。每個神經元都有一個偏差值,表示該神經元的輸出在不考慮輸入的情況下的預設值。偏差值可以控制神經網絡的輸出範圍,並且可以用於控制模型的準確性。 在訓練神經網絡模型時,通常會使用梯度下降法來調整權重和偏差的值,以使得模型的輸出與真實值的差異最小。 設定神經元的偏差值 在訓練神經網絡模型時,通常可以自己設定神經元的偏差值。 例如,在 TensorFlow 中可以使用以下方式創建一個帶有偏差的神經元: import tensorflow as tf # 創建一個帶有偏差的神經元 neuron…

  • ,

    tensorflew的自動求導機制

    什麼是自動求導機制 在 TensorFlow 中,有一種特殊的張量類型叫做梯度張量,可以用於計算模型的梯度。 TensorFlow 的梯度張量是一種特殊的張量,其中包含了模型中每個變量的梯度信息。梯度張量是 TensorFlow 的自動微分機制的基礎,可以通過 TensorFlow 的自動微分機制來計算模型的梯度。 使用方法介紹 使用 GradientTape 類的方法是: 在計算圖的上下文中創建一個 GradientTape 對象。 使用 GradientTape 對象的 watch 方法監視計算圖中的變量。 執行計算圖,並在計算圖中使用 TensorFlow 的運算符操作張量。…


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!