iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
AI & Data

AI 再次入門到進階系列 第 3

【Day03】Python, AI, ML基礎及ML應用

  • 分享至 

  • xImage
  •  

1.Python 入門以及套件的學習使用

還不錯的Python 入門影片
Yes

經典的W3C School 教學,每個都Check過一遍大概就知道大致是怎樣運作的。

Numpy的應用教學

詳靜的 Pandas 教學

Python-matplotlib的教學

連阿嬤都會的OpenCV教學
Yes

Scikit-Learn 教學
Yes

seaborn 教學

2.人工智慧相關的數學

3.機器學習算法和應用

3.1 機器學習簡介:

我覺得最簡潔易懂的機器學習介紹

機器學習(Machine Learning)是一個廣泛的領域,包含多種不同類型的演算法。以下是一些主要的機器學習演算法分類,以及一些具體的演算法範例:

監督式學習(Supervised Learning)

在監督式學習中,模型是基於帶有標籤的數據集來訓練的。

  • 線性回歸(Linear Regression)
  • 邏輯迴歸(Logistic Regression)
  • 決策樹(Decision Trees)
  • 隨機森林(Random Forest)
  • 支持向量機(SVM)
  • K-最近鄰(K-NN)
  • 神經網路(Neural Networks)
  • 非監督式學習(Unsupervised Learning)

在非監督式學習中,模型是基於沒有標籤的數據集來訓練的。

  • K-均值(K-means)
  • 階層聚類(Hierarchical Clustering)
  • 主成分分析(PCA)
  • 獨立成分分析(ICA)
  • 混合高斯模型(Gaussian Mixture Model)
  • 半監督式學習(Semi-supervised Learning)

半監督式學習介於監督式學習和非監督式學習之間,使用部分帶有標籤的數據集來訓練。

  • 標籤傳播(Label Propagation)
  • 自編碼器(Autoencoders)
  • 強化學習(Reinforcement Learning)

在強化學習中,一個智能體學習如何在環境中執行動作,以便最大化某種形式的獎勵信號。

  • Q-學習(Q-Learning)
  • 深度Q網路(DQN)
  • 策略梯度(Policy Gradients)
  • 集成學習(Ensemble Learning)
    集成學習方法是將多個模型(通常是弱學習器)組合在一起,以改善整體性能。
  1. Bagging
  2. Boosting
  3. Stacking
    這只是一個簡單的概述。每一類都有多種不同的演算法和變體。

============================================================

3.2 常見機器學習算法與應用(如有錯誤拜託通知我)

3.2.1 線性回歸

線性回歸在機器學習領域也是一個非常基礎的模型,通常用作基線模型或者是為了理解數據的基本趨勢。

數學原理

在機器學習的框架下,線性回歸可以被視為一個監督學習問題。我們有一個目標函數(或損失函數)需要最小化。對於線性回歸,這通常是均方誤差(Mean Squared Error, MSE):
https://ithelp.ithome.com.tw/upload/images/20230908/200920563GtlBNEWOZ.png
https://ithelp.ithome.com.tw/upload/images/20230908/20092056ykO5TCBjRv.png
為了最小化這個損失函數,我們可以使用多種優化算法,其中最常見的是梯度下降。

程式碼實現
在 Python 中,我們通常會使用像 scikit-learn 這樣的機器學習庫來實現線性回歸。下面是一個簡單的例子:

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt

# 生成模擬數據
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 創建線性回歸模型
lin_reg = LinearRegression()

# 訓練模型
lin_reg.fit(X, y)

# 獲取模型參數
print("截距:", lin_reg.intercept_)
print("斜率:", lin_reg.coef_)

# 進行預測
X_new = np.array([[0], [2]])
y_predict = lin_reg.predict(X_new)

# 繪圖
plt.scatter(X, y)
plt.plot(X_new, y_predict, "r-")
plt.axis([0, 2, 0, 15])
plt.show()

在這個例子中,我們使用 scikit-learn 的 LinearRegression 類來創建一個線性回歸模型,然後用 fit 方法來訓練模型。訓練完成後,我們可以用 predict 方法來進行預測。

在熟悉 Tensorflow 和 Pytorch 後,接下來幾天會以傳統的機器學習算法跟應用的介紹為主,之後才會有近幾年比較熱門的電腦視覺(yolo, U-net),自然語言處理相關的算法跟應用, 最後才會有大模型的應用開發, 微調, Lora,以及 stable diffusion 跟 Llama的最前沿的應用介紹。


上一篇
【Day02】Ubuntu, Windows, Mac 以及雲端的環境設定
下一篇
【Day04】接下來會介紹到的領域以及框架
系列文
AI 再次入門到進階30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言