深度学习(正向传播即分类,反向传播即生成):
1、经过训练后每一层都会逐步提取图像的更高层次特征,直到最后一层基本上决定图像显示的内容。

2、特征变化趋势:边缘和拐角(轮廓) => 整体的特征(文理和笔触等) => 越来越多的复杂特征

deep_drean的整体思想:

  • 输入任务无关的图片,通过网络提取特征,反向传播更新图片中的像素点(非新网络参数),不断迭代让网络越来越相信输入图片属于分类任务中的某一类。
  • 网络不断更新图片像素来最大化L2范数,使得提取的特征越来越大,经过网络之后提取的特征更像网络希望提取的特征
  • 本质上:一个梯度上升过程,试图最大化特定层激活的L2范数

deep_dream的训练技巧:
1、随机抖动偏移图像,产生噪声,加快训练

shift_x, shift_y = np.random.randint(-max_jitter, max_jitter + 1, 2)
img = np.roll(np.roll(img, shift_x, -1), shift_y, -2)  # 数组沿着一个维度进行平移

2、规则化梯度上升步长的幅度
3、在多个尺度上应用上升

如何控制梦境?

即控制图片中出现的东西(调整优化的目标,将原始图像向另一张图像逼近,可以定义一个指向性的优化目标):
step1:输入一张图片作为梦境的控制图片
step2:控制图片经网络前向传播得到特征向量t1,而原始图片也得到特征向量t2
step3:比较特征向量t1和t2,(1)将它们重新排列成新的矩阵,(2)做矩阵乘法,(3)选择矩阵乘法中最大的下标
step4:将step3中下标对应的原始图片的特征向量作为新的特征向量,这些特征向量被认为是最匹配控制图片特征向量的,
step5:done!实现控制梦境!

keras实现注意点:

1、预训练模型采用inception_v3,inception_v3中数据预处理是将像素点缩放到[-1, 1](除以255,减去0.5,乘以2),deep_dream将最大化后的图片数组生成图片的时候,需要从[-1, 1]反向到[0, 255](乘以2,加上0.5, 乘以255)

更多学习笔记可以关注我的微信公众号「kelly学挖掘」,欢迎交流。

-- 未完待续 --

deep_dream算法总结相关推荐

  1. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  2. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  3. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  4. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

  5. 伍六七带你学算法 入门篇-卡牌分组

    力扣-914. 卡牌分组 难度-简单 这是一道非常有趣的题,提交通过率令人深思 ,思考它是不是一道简单的题- 开始正题: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以 ...

  6. 伍六七带你学算法 入门篇-最小的k个数

    java面试题-最小的k个数 难度-简单 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:a ...

  7. 十大算法,描述+代码+演示+分析+改进(赶紧收藏!)

    十大算法 1.冒泡排序 ​ (1)算法描述 ​ 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来.走访数列的工作是重复地进行直到没有再需要 ...

  8. 人工智能3d建模算法_打破国外垄断,全国产3D芯片为机器人“点睛”

    ◎ 科技日报记者 崔爽 传统机器人只有"手",只能在固定好的点位上完成既定操作,而新一轮人工智能技术大大推动了机器和人的协作,这也对机器人的灵活性有了更高要求. 要想像人一样测量. ...

  9. 算法设计思想(5)— 递归法

    1. 递归概念 递归 Recursion是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己. ​ 递归有两层含义: 递归问题必须可以分解为若干个规模较小.与原问题形式相同的子问 ...

最新文章

  1. php 使用curl模拟登录discuz以及模拟发帖
  2. EM算法 大白话讲解 没看懂 保存
  3. 分层开发思想与小笼包
  4. linux用file命令,Linux file命令的使用
  5. JavaWeb 入门篇(2)Hello Servlet!!!
  6. Linux 安装 jdk ( 两种方式 )
  7. java 时间类 joda_Java日期类Joda-time的使用及性能对比
  8. Bootstrap3 栅格系统之列排序
  9. Window10 下载配置 ChromeDriver
  10. ModelBinder——ASP.NET MVC Model绑定的核心
  11. python移动文件
  12. 计算机软考初级信息技术试题及答案,2015年软考信息技术处理员考试模拟试题及答案...
  13. windows 计算机 快捷键,Windows7计算器快捷键汇总
  14. unity游戏开发之打包apk谷歌上架报错总结
  15. 消费机 mysql,中控消费机软件常见问题|中控CM20消费机教程
  16. HSB概念和应用场景
  17. 树莓派4B安装系统,配置远程连接和WiFi,更新源,更新中文支持,基本Linux命令,用Python输出hello和“你好,世界”
  18. 写给朝九晚五的上班族的一封信(转)
  19. 【面试总结】小灰灰求职进行曲(五)HR面试常见问题
  20. 不同开发语言 CRC 计算 CRC-16/XMODEM

热门文章

  1. javascript 对象{‘key1’:‘value1‘,‘key2‘:‘value2‘} 转化为数组 [{‘key1‘:‘value1‘},{‘key2‘:‘name2‘}]
  2. AI录音笔战场:搜狗与科大讯飞的对决
  3. 【bzoj1132】[POI2008]Tro 计算几何
  4. linux设置rx8010时间,EPSON 实时时钟芯片RX-8010SJ Application Manual应用手册.pdf
  5. EPSON RX8010SJ RTC 调试笔记之六, 计时更新中断功能 (Time Update Interrupt Function)
  6. 如何判断一个数是小数(面试题)
  7. fs文件系统模块常用的API
  8. C#实现excle数据复制粘贴到DataGrideView表格中
  9. matlab回文字符判断程序,(c语言)回文字符串的判断,gets和scanf
  10. 空间存储公链(SSCC)空间矩阵裂变机制上线基本介绍