日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“猜画小歌”的一些细节和思考

發布時間:2025/7/25 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “猜画小歌”的一些细节和思考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~

本文由徐釩文 發表于云+社區專欄

Quickdraw的CNN-RNN模型

"猜畫小歌"用到的quickdraw模型本質上是一個分類模型,輸入是筆畫的點的坐標信息和每筆起始的標識信息,應用幾個級聯的一維卷積,再使用 BiLSTM 層并對結果進行求和,最后使用Softmax層進行分類。

整個網絡結構如圖:

模型結構

開源數據和代碼詳見后面參考文檔。整個網絡比較簡單,而且用其默認的參數最終的模型準確率在75%,如下圖,不算是一個要求較高的場景,效果已經足夠好。

這里分享筆者注意到的有幾個有意思的小細節(高手輕拍)。

小細節

數據預處理

對于stroke-3(x,y,n),Google默認使用的TFRecord數據對坐標做了歸一化與差值處理。

# 1. Size normalization.lower = np.min(np_ink[:, 0:2], axis=0)upper = np.max(np_ink[:, 0:2], axis=0)scale = upper - lowerscale[scale == 0] = 1np_ink[:, 0:2] = (np_ink[:, 0:2] - lower) / scale# 2. Compute deltas.np_ink[1:, 0:2] -= np_ink[0:-1, 0:2]np_ink = np_ink[1:, :]

為什么歸一化?

  • 類似于輸入層BN的作用,將數據的分布由原來激活函數的收斂區調整到梯度較大的區域
  • 只關心畫的筆畫走勢,而不關心畫的大小,也就是說畫一個大圓和畫一個小圓在輸入數據層面沒有太大區別

為什么差值處理?

  • 忽略起始坐標位置的影響,也就是說在畫布的中間和四個角落開始作畫同一個形狀,在輸入數據層面沒有太大區別

卷積層

使用多個一維卷積(conv1d)級聯,并使用線性激活函數,沒有使用pooling層。

  • 線性激活改為relu,準確率降了點,為73%
  • 線性激活改為relu+加上pooling層(size=4,strides=4),準確率又降了點,為70%

為什么線性激活和去掉pooling層效果提升2-3個點?

pooling層有哪些作用:

  • 降低參數量,事實上增加了pooling層使得訓練時間縮短了一大半;
  • 保持特征局部不變性,貌似我們的輸入不是復雜的圖片像素信息,而是筆畫信息,而且做了差值處理,也不太需要局部不變性;
  • 減少冗余,去除噪聲,對于簡筆畫來說,可能作用也不是特別明顯。
  • 筆者(單純的)理解簡筆畫已經是人類對于物體的高度抽象了,因此沒有必要在用復雜的CNN網絡去抽象特征,并且全局的特征有后面的RNN層獲取。

    小思考

    Google 16年11月就推出了QuickDraw網頁版,最近只是借助小程序又火了一把,之前已經獲取過大量真實的用戶數據,并用于這次小程序效果的優化。

    模型還能用來做啥?

    最近看到了一片研究這份簡筆畫數據中不同國家的人的繪畫順序與其國家文字的關系的文章,而且時序分類模型在異常分析、手寫體識別、語音識別、文本分類等領域有大量的研究和進展。

    畫圓的不同

    筆者研究生階段曾經研究過電腦使用者的異常分析,根據用戶的鼠標軌跡和鍵盤操作等特征建立分類模型識別是不是本人在操作。現在想來,直接拿這個模型來跑之前的任務,應該還不錯。

    產品層面,我們還能有些什么創新?

    • AutoDraw:能將你的涂鴉自動升華為美麗的藝術圖像(Google已推出)
    • 繪畫故事:畫4格漫畫,系統自動生成一個故事(這個配合上層的NLG技術應該問題不大)
    • 繪畫打分:為你的繪畫的創新性、技術性、完整性等自動評分

    這些繪畫數據還有什么可以挖掘的價值?

    繪畫是人在用自己的方式描述自己理解的世界,如果從這些簡單的簡筆畫入手,能夠從中學習出人理解物體和世界的方法,簡單來說可以遷移到目前圖像識別算法的高層抽象階段,提升某些任務的效果;復雜一點甚至可以用作提升機器的推理能力,學習人類對物體和世界抽象建模的能力(腦洞)。

    參考文檔

    https://tensorflow.juejin.im/tutorials/recurrent_quickdraw.html

    https://github.com/tensorflow/models/blob/master/tutorials/rnn/quickdraw/

    https://www.jiqizhixin.com/articles/2017-09-12-5

    https://juejin.im/post/5b559b76e51d45616f4596dd

    https://zhuanlan.zhihu.com/p/39059583

    問答

    如何實現CNN卷積層的計算?

    相關閱讀

    Linux調度原理介紹和應用(前篇)

    如何備份你的MySQL數據庫

    MySQL 8.0 版本功能變更介紹

    此文已由作者授權騰訊云+社區發布,原文鏈接:https://cloud.tencent.com/developer/article/1171905?fromSource=waitui

    歡迎大家前往騰訊云+社區或關注云加社區微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐干貨哦~

    海量技術實踐經驗,盡在云加社區!

    轉載于:https://www.cnblogs.com/qcloud1001/p/9400190.html

    總結

    以上是生活随笔為你收集整理的“猜画小歌”的一些细节和思考的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。