补充一点:
上面提到的矩阵与矢量乘法,比如W * X,用星号表示逐项相乘,是为了保证高中数学不超纲。
实际在大学的数学书中,如果X是一个1024维矢量,W是一个1024 * 2尺寸的矩阵,这种运算通常写成:
$$X^TW$$
原文中单层神经元函数因此可以记作:
$$max(X^TW+B,0)$$
常见问题:
我想要很多猫和狗的照片
神经网络的函数这么复杂,我不是很懂矩阵运算(线性代数)和求偏导(高等数学)怎么办?
你只需要知道基本的矩阵概念(比如图像是二维矩阵,彩色图像是三维矩阵),以及怎么用python语言操纵矩阵的元素就可以了。谷歌开源的机器学习框架tensorflow就是用来做矩阵计算流程优化的,你可以用它拼接出神经网络,它有办法帮你设置好每一层的权重矩阵,并且帮你优化计算流程。神经网络函数、ReLU函数(就是max(x,0))、softmax函数都是tensorflow内置的。tensorflow可以根据你拼接出的计算流程,帮你求W对E的偏导,也就是说除了处理数据和设计架构,你什么都不用做。它有很多教程可以帮助你学习怎么使用,你应该花一些时间阅读。Github上的Keras框架把tensorflow包了一层,操作起来更简单,前提是你必须知道底下发生了什么。
感觉卷积神经网络比普通神经网络还复杂
tensorflow也支持卷积神经网络的构建,你大概知道原理就行了,不需要自己写二维卷积代码(很难写对的)。关于卷积神经网络(ConvNet,又称CNN)原理方面的内容,可以阅读Yann LeCun 发表于 2000年以前的论文。
玩机器学习能提高我的数学水平吗?
我认为是绝对不可能的。如果你数学不好,最好先学数学,千万别碰这个。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |