神经网络基础-神经网络补充概念-10-向量化

概念

向量化是一种优化技术,通过将循环操作替换为向量运算,以利用底层硬件的并行计算能力,从而提高代码的性能。在机器学习中,向量化可以显著加速训练过程,特别是在处理大规模数据集时。

代码实现

python 复制代码
import numpy as np

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

def compute_loss(X, y, theta):
    m = len(y)
    h = sigmoid(X.dot(theta))
    loss = (-1/m) * np.sum(y * np.log(h) + (1 - y) * np.log(1 - h))
    return loss

def batch_gradient_descent(X, y, theta, learning_rate, num_iterations):
    m = len(y)
    losses = []
    
    for _ in range(num_iterations):
        h = sigmoid(X.dot(theta))
        gradient = X.T.dot(h - y) / m
        theta -= learning_rate * gradient
        
        loss = compute_loss(X, y, theta)
        losses.append(loss)
        
    return theta, losses

# 生成一些模拟数据
np.random.seed(42)
m = 100
n = 2
X = np.random.randn(m, n)
X = np.hstack((np.ones((m, 1)), X))
theta_true = np.array([1, 2, 3])
y = (X.dot(theta_true) + np.random.randn(m) * 0.2) > 0

# 初始化参数和超参数
theta = np.zeros(X.shape[1])
learning_rate = 0.01
num_iterations = 1000

# 执行批量梯度下降(向量化)
theta_optimized, losses = batch_gradient_descent(X, y, theta, learning_rate, num_iterations)

# 打印优化后的参数
print("优化后的参数:", theta_optimized)

# 绘制损失函数下降曲线
import matplotlib.pyplot as plt
plt.plot(losses)
plt.xlabel('迭代次数')
plt.ylabel('损失')
plt.title('损失函数下降曲线')
plt.show()
相关推荐
蚍蜉撼树谈何易10 小时前
一、语音识别基础(1.1 语音特征的提取)
人工智能·语音识别
线束线缆组件品替网10 小时前
Conxall 防水线缆在户外工控中的布线实践
运维·人工智能·汽车·电脑·材料工程·智能电视
皇族崛起10 小时前
【视觉多模态】基于视觉AI的人物轨迹生成方案
人工智能·python·计算机视觉·图文多模态·视觉多模态
dundunmm10 小时前
【每天一个知识点】本体论
人工智能·rag·本体论
nimadan1210 小时前
**免费有声书配音软件2025推荐,高拟真度AI配音与多场景
人工智能·python
jkyy201410 小时前
汽车×大健康融合:智慧健康监测座舱成车企新赛道核心布局
大数据·人工智能·物联网·汽车·健康医疗
可触的未来,发芽的智生10 小时前
完全原生态思考:从零学习的本质探索→刻石头
javascript·人工智能·python·神经网络·程序人生
凤希AI伴侣10 小时前
重构与远见:凤希AI伴侣的看图升级与P2P算力共享蓝图-凤希AI伴侣-2026年1月12日
人工智能·重构·凤希ai伴侣
叫我:松哥10 小时前
基于Flask+ECharts+Bootstrap构建的微博智能数据分析大屏
人工智能·python·信息可视化·数据分析·flask·bootstrap·echarts
倔强的石头10611 小时前
什么是机器学习?—— 用 “买西瓜” 讲透核心逻辑
人工智能·机器学习