觀察AI模型的隱空間狀態,探索潛在因子
1 前言
當我們在觀察AI模型的生成數據時,通常會比較關注于模型輸出層的結果。然而,觀察其隱藏層的數據也是非常有價值的。AI模型善于捕捉萬事萬物之間的關聯性或規律,因而成為探索人體、企業等復雜系統中潛在因子(Latent factors)的利器。在這些復雜系統中,其潛在因子是指無法直接觀察但影響系統行為的潛在變量或模式。例如,大家已經很熟悉的自動編碼器(Autoencoder,簡稱AE)模型,它能透過學習數據的壓縮表示,來呈現復雜系統中的潛在模式和關系。這種功能使得AE模型在醫學研究、生理監測或企業財務分析各領域中,都展現出高度的實用性。
在本文里,將說明如何透過可視化方法對模型的隱( 藏) 空間(Latent space) 狀態進行繪制而呈現于人們可觀察的二維空間里。這種表示可以呈現慢性病患者的分布情況、特定患者的健康狀況演變,因而在臨床環境中至關重要。在企業經營中,擅用AI 模型來發現這些潛在因子,可以有效降低決策風險、優化營運模式來大幅提企業的競爭力。
2 觀察<隱空間狀態> 的意義
隱空間狀態是指模型學習從輸入數據中捕獲的顯著特征,并表示于較低維度的隱空間里。所以我們可以藉由觀察模型的隱空間變量( 狀態) 來探索復雜系統的重要潛在因子,以便探索復雜系統的底層機制。例如,人體的健康狀況就是一個無法直接測量的變量,尤其是對于無法透過特定測試診斷的疾病( 如多發性硬化癥)。此時,AI 模型可以協助將不同的測試結合起來呈現出患者的健康狀況( 圖-1)。
圖1
此外,還能將觀察到的見解整合到商業智能工具、儀表板和報告系統中,以進行持續監控和分析。
3 以VAE模型為例
例如,大家已經很熟悉的變分自動編碼器(Variation autoencoder,簡稱VAE)模型,它能透過學習數據的壓縮表示,來呈現復雜系統中的潛在模式和關系。這種功能使得VAE模型在醫學研究、生理監測或企業財務分析各領域中,都展現出高度的實用性。擅用VAE可以讓企業獲得更深入的見解,增強決策能力,并保持在各自行業的競爭優勢。
使用VAE是為了產生與原始源數據相關的新數據。這VAE假設源數據具有某種潛在的機率分布(例如高斯分布),然后嘗試找到分布的參數( 圖-2)。
圖2
VAE模型從輸入數據(x)中學習,然后映射到隱空間。就如同觀察到一位華麗盛裝的小孩X,經由Encoder 層過濾( 卸妝) 分析,得出其母體(Population) 平均值和標準偏差,其代表所屬家庭( 概率分布)。然后從家庭里隨機抽樣一位( 素妝) 小孩Z。再經由Decoder 層生成(化妝) 之后,得出^x,比較看看^x 與x 的誤差值(Loss)。一直持續訓練,來降低誤差值。
4 演練:觀察簡單AE模型
現在來觀察簡單AE( 自動編碼器) 模型的訓練流程,以海中的< 魚群> 為例:
一開始,先從上述的魚群中萃取各條魚的特征(Feature):
有些情形下,也需要給予各條魚不同的編號(ID):
于是,得到一個數值化特征表,這就是要輸入給AE模型的訓練數據(X):
這AE模型從輸入數據(x)中學習, 然后經由Encoder映射到隱空間,得出其母體的概率分布。然后從母體里隨機抽樣(Z)。再經由Decoder 層生成之后,得出^x,一直持續訓練。訓練完成時,我們可以來觀察隱空間里的狀態。例如,以繪圖方式來呈現AI模型的隱空間狀態。請看看范例程序:
# example_01.py
import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
import matplotlib.pyplot as plt
class AE(nn.Module):
def __init__(self):
super(AE,self).__init__()
self.Enc1 = nn.Linear(3, 8)
self.Enc2 = nn.Linear(8, 2)
self.Dec1 = nn.Linear(2, 8)
self.Dec2 = nn.Linear(8, 3)
def forward(self, x):
h = self.Enc2(self.Enc1(x))
out = F.sigmoid(self.Dec2(self.Dec1(h)))
return out, h
model = AE()
lossF = nn.MSELoss()
opt = torch.optim.SGD(model.parameters(), lr=0.35)
----------------------------------
X = torch.tensor(
[[1,10, 5], [9, 2, 4], [8, 1, 3],
[3, 1,10], [5, 9, 7], [5, 8, 3],
[9, 2, 3], [2,10, 5], [1, 9, 4]
], dtype=torch.float32)
----------------------------------
dx = X/10
dt = dx
for ep in range(1000):
z, h = model(dx)
loss = lossF(z, dt)
opt.zero_grad()
loss.backward()
opt.step()
if(ep%200 == 0):
loss = loss.detach().numpy()
print(‘ep =’, ep,’, loss = ‘,np.round(loss,4))
----------------------------------
model.eval()
z, h = model(dx)
hh = h.detach().numpy()
map_color = {0: ‘r’, 1: ‘g’, 2:’b’, 3:’y’, 4:’k’, 5:’m’,
6:’c’,7:’pink’,8:’grey’,9:’blueviolet’}
color = list(map(lambda k: map_color[k], [0,1,
2,3,4,5,6,7,8]))
fig, ax = plt.subplots(1)
plt.scatter(hh[:, 0], hh[:, 1], c=color)
plt.show()
# End
當訓練完成時,就繪出圖形:
于是,觀察到隱空間狀態了。
圖-3
5 結束語
一般而言,搭配行業的專業知識,會更易于詮釋隱空間狀態的涵意。例如,醫藥專家擅用VAE 模型將復合編碼成196維的隱空間表示,來產生具有藥物發現感興趣的特性的新化合物(圖-3)。
此外,具有豐富的企業財務專業知識的經理人,即能擅用AI模型來獲得深入的見解,增強其決策能力,來保持企業的競爭優勢。在商業中的潛在因子則包括:市場趨勢、顧客偏好、競爭策略和投資風險等等。藉由觀察AI 模型的隱空間狀態,來發現這些潛在因子來為企業決策提供信息、優化流程并增強客戶體驗。
(本文來源于《EEPW》202410)
評論