ML笔记——神经网络

目录


想法

用计算机的方式表示各个神经元,模仿生物的大脑。
用数据表示各个神经细胞,用函数表示神经细胞间的传递过程。

数学表达

这里写图片描述
其中的

x1, x2 x 1 ,   x 2
表示原始数据,
a(2)1 a 1 ( 2 )
表示第二个激活层的第一个单元
由原始数据向激活层传递的过程表示为
a(2)1=g(θ(1)10x0+θ(1)11x1+θ(1)12x2) a 1 ( 2 ) = g ( θ 10 ( 1 ) x 0 + θ 11 ( 1 ) x 1 + θ 12 ( 1 ) x 2 )

上式中的
θ(j)ik θ i k ( j )
表示为从第 j 层中的第 k 个单元向第 j+1 层中第 i 个单元传递的权值
其中的假设函数
hθ(x)=a(2)1 h θ ( x ) = a 1 ( 2 )

对于再复杂一些的网络如下图:
这里写图片描述
则有
a(2)1=g(θ(1)10x0+θ(1)11x1+θ(1)12x2+θ(1)13x3) a 1 ( 2 ) = g ( θ 10 ( 1 ) x 0 + θ 11 ( 1 ) x 1 + θ 12 ( 1 ) x 2 + θ 13 ( 1 ) x 3 )
a(2)2=g(θ(1)20x0+θ(1)21x1+θ(1)22x2+θ(1)23x3) a 2 ( 2 ) = g ( θ 20 ( 1 ) x 0 + θ 21 ( 1 ) x 1 + θ 22 ( 1 ) x 2 + θ 23 ( 1 ) x 3 )
a(2)3=g(θ(1)30x0+θ(1)31x1+θ(1)32x2+θ(1)33x3) a 3 ( 2 ) = g ( θ 30 ( 1 ) x 0 + θ 31 ( 1 ) x 1 + θ 32 ( 1 ) x 2 + θ 33 ( 1 ) x 3 )

hθ(x)=a(3)1=g(θ(2)10a(2)0+θ(2)11a(2)1+θ(2)12a(2)2+θ(2)13a(2)3) h θ ( x ) = a 1 ( 3 ) = g ( θ 10 ( 2 ) a 0 ( 2 ) + θ 11 ( 2 ) a 1 ( 2 ) + θ 12 ( 2 ) a 2 ( 2 ) + θ 13 ( 2 ) a 3 ( 2 ) )

实现过程

神经网络的实现方式可以选择一组基本操作(如:加减法),再通过这一组基本操作求解复杂过程的解(如:解一元一次方程)
机器学习视频中讲述的是通过构造与、或、非三个基本的逻辑运算,并用这些简单的神经网络构造异或运算

### 李宏毅2021年机器学习课程笔记资源 对于李宏毅教授的2021年春季机器学习课程,其官方提供了丰富的教学材料,包括视频、幻灯片以及Colab实验文件等内容。这些资源可以通过以下途径获取: #### 1. 官方课程主页 课程主页包含了所有的讲义、作业和相关链接,可以直接访问并下载所需的内容。具体地址为: [https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.html](https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.html)[^1] #### 2. B站搬运视频 为了方便国内用户观看,该课程还被上传至哔哩哔哩平台,可通过以下链接查看完整的课程录像: [https://www.bilibili.com/video/BV1Wv411h7kN](https://www.bilibili.com/video/BV1Wv411h7kN)[^1] #### 3. GitHub笔记整理 有社区成员基于此课程制作了详细的笔记文档,并托管于GitHub仓库中。以下是其中一个较为全面的项目地址: [https://github.com/lihongyi-ml/notes-lihongyi-2021-ml](https://github.com/lihongyi-ml/notes-lihongyi-2021-ml)[^1] 该项目涵盖了每节课的核心知识点总结,部分章节甚至附带了额外的学习指导。 #### 4. 图像分类相关内容摘要 针对图像分类任务,李宏毅教授在其深度学习课程中提到一种基础方法——即将图片数据转换成一维向量形式输入到全连接神经网络中完成训练过程[^2]。尽管这种方法实现起来相对直观简便,但在实际应用中可能面临维度灾难等问题,因此后续还会引入卷积神经网络(CNN)作为更优解决方案之一。 ```python import torch from torchvision import datasets, transforms transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) trainset = datasets.MNIST('PATH_TO_STORE_TRAINSET', download=True, train=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) dataiter = iter(trainloader) images, labels = dataiter.next() print(images.shape) # 输出应类似于torch.Size([64, 1, 28, 28]) # 将二维矩阵展平为一维向量 input_images = images.view(images.shape[0], -1) print(input_images.shape) # 转换后的形状应该是torch.Size([64, 784]) ``` 以上代码片段展示了如何利用PyTorch框架加载MNIST手写数字识别数据集,并对其进行预处理操作以便适配传统全连接层结构的要求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值