zoukankan      html  css  js  c++  java
  • 李宏毅机器学习课程笔记-7.3CNN应用案例

    Deep Dream

    Deep Dream是这样的:如果给机器一张图片(x),Deep Dream会把机器看到的内容加到图片(x)中得到(x')。那如何实现呢?

    如上图所示,将图片(x)输入到CNN中,然后取出CNN中某一层(L)(可以是卷积、池化阶段的隐藏层,也可以是FNN中的隐藏层)的输出(O),然后将(L)中的正值调大、负值调小得到一个新的输出(O'),然后通过梯度下降找到一张新的图片(x')使层(L)的输出为(O'),这个(x')就是我们要的结果。直观理解的话,也就是让CNN夸大它所看到的内容

    然后就得到了如下结果……(看到的时候我惊了,真是十分哇塞)

    Deep Style

    Deep Style是这样的:如果给机器一张图片(x)(y),Deep Style可以把图片(y)的风格加到图片(x)上,也就是风格迁移

    那如何实现呢?论文:A Neural Algorithm of Artistic Style

    1. 把图片(x)传入CNN并得到输出,然后其输出作为图片(x)的内容(c_x)content);
    2. 把图片(y)传入CNN并得到输出,但不是考虑输出的值是什么,而是考虑输出层中各个filter输出之间的相关性(corelation)作为图片(y)的风格(s_y)style);
    3. 最后基于同一个CNN找到图片(z),图片(z)传入CNN后得到的内容(c_z)(c_x)、风格(s_z)(s_y)

    如下图所示

    img

    围棋

    CNN不单单可以用在图像上,还可以用在其它方面,比如下围棋。

    在下围棋这件事上,其实FNN就可以(输入和输出都是19×19=361的vector),但CNN的效果更好。当然还可以用强化学习。

    为什么CNN可以用来下围棋呢?因为围棋具有图像的3个性质,不过AlphaGo并没有用Max Pooling因为它不需要。

    语音

    如下图所示,用语谱图(Spectrogram)表示语音。

    语谱图的x轴是时间,y轴是频率,z轴是幅度。幅度用颜色表示(比如亮色表示高、暗色表示低)。

    在语谱图中,CNN的卷积核往往只在y轴方向上移动,这样可以消除男生女生声音频率的差异;卷积核往往不在x轴上移动,因为时间域一般是在后面用LSTM等等进行处理,如下图所示。

    img

    文本

    CNN也可以用在文字处理上,比如文本情感分析。具体不再讲,可以看李宏毅老师的视频

    img

    图片生成

    Deep Dream的方法还是不能画出图片,不过也有其它较为成功的方法,如下图所示。

    img


    Github(github.com):@chouxianyu

    Github Pages(github.io):@臭咸鱼

    知乎(zhihu.com):@臭咸鱼

    博客园(cnblogs.com):@臭咸鱼

    B站(bilibili.com):@绝版臭咸鱼

    微信公众号:@臭咸鱼

    转载请注明出处,欢迎讨论和交流!


  • 相关阅读:
    Turtlebot3 OpenCR 机器人端刷固件方案(包括ROS1和ROS2)
    TurtleBot3自动驾驶Noetic模拟仿真项目 1.准备工作
    OpenManipulatorX Gazebo仿真(Noetic)
    Ned
    OpenMANIPULATORX Melodic ROS包安装
    TurtleBot3自动驾驶Noetic6.模拟隧道
    Turtlebot3 Noetic ROS包安装
    WEB网站发布服务器IIS报错问题终极解决方案,查到问题点
    理解javascript中的连续赋值
    C# webBrowser.DocumentCompleted 解决之道
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/14605746.html
Copyright © 2011-2022 走看看