<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KazeHelloWorld的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/KazeHelloWorld</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KazeHelloWorld]]></copyright><item><title><![CDATA[卷积神经网络]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/120275839</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/120275839</guid><author>KazeHelloWorld</author><pubDate>Mon, 13 Sep 2021 21:22:19 +0800</pubDate><description><![CDATA[CNN
卷积神经网络(CNN)反向传播算法推导
卷积神经网络(CNN)反向传播算法推导

虽然卷积神经网络的卷积运算是一个三维张量的图片和一个四维张量的卷积核进行卷积运算，但最核心的计算只涉及二维卷积，因此我们先从二维的卷积运算来进行分析：

如上图所示，我们求原图A处的delta误差，就先分析，它在前向传播中影响了下一层的哪些结点。显然，它只对结点C有一个权重为B的影响，对卷积结果中的其它结点没有任何影响。因此A的delta误差应该等于C点的delta误差乘上权重B。

大家可以尝试用相同的方法去分析原图]]></description><category></category></item><item><title><![CDATA[Roberta]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119960804</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119960804</guid><author>KazeHelloWorld</author><pubDate>Fri, 27 Aug 2021 21:33:47 +0800</pubDate><description><![CDATA[相较于Bert
改进版的RoBERTa到底改进了什么？



静态Masking vs 动态Masking




with NSP vs without NSP




更大的mini-batch


原本的BERTbase 的batch size是256，训练1M个steps。RoBERTa的batch size为8k。




更多的数据，更长时间的训练




BPE编码


BPE




...]]></description><category></category></item><item><title><![CDATA[反悔贪心专题]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119896941</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119896941</guid><author>KazeHelloWorld</author><pubDate>Tue, 24 Aug 2021 20:30:18 +0800</pubDate><description><![CDATA[反悔贪心给定截止时间和价值，每个花费单位时间价值一定模型（耗费时间/截止时间）
贪心反悔机
给定截止时间和价值，每个花费单位时间
约翰有太多的工作要做。为了让农场高效运转，他必须靠他的工作赚钱，每项工作花一个单位时间。 他的工作日从 0 时刻开始，有 10^9 个单位时间。在任一时刻，他都可以选择编号 1 到 N 的 N  项工作中的任意一项工作来完成。 因为他在每个单位时间里只能做一个工作，而每项工作又有一个截止日期，所以他很难有时间完成所有N个工作，虽然还是有可能。 对于第 i 个工作，有一个截止时间 ]]></description><category></category></item><item><title><![CDATA[笔试题汇总]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119845381</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119845381</guid><author>KazeHelloWorld</author><pubDate>Sat, 21 Aug 2021 21:39:31 +0800</pubDate><description><![CDATA[01分隔
第一行输入 n 字符串长度， 第二行为字符串，字符串只包含01，返回数组，表示每个位置前缀字符串能被划分为 01相同比例的子串的个数，例如 分成 两个子串01个数分别为 (a,b) &amp; (c,d) 则满足 ad = bc。
思路： 遍历一次字符串，记录01出现次数，字典保存比例出现次数，比例化为最简，有一个出现0次的情况统一归为（0,1) | (1,0)，将当前位置比例对应次数返回
import collections
import math

n = int(input())
s = i]]></description><category></category></item><item><title><![CDATA[面经-机器学习]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119809156</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119809156</guid><author>KazeHelloWorld</author><pubDate>Thu, 19 Aug 2021 19:35:07 +0800</pubDate><description><![CDATA[机器学习ROC 曲线 &amp; AUCGMM 高斯混合模型xgboostEM算法
ROC 曲线 &amp; AUC
横坐标为假正，纵坐标为真正

越接近1越好，（0，0）表示都预测成负，（1，1）表示都预测成正
而FPR（False Positive Rate）= FP /（FP + TN），即负类数据被分为正类的比例
TPR（True Positive Rate）= TP /（TP + FN），即正类数据被分为正类的比例
AUC（Area Under Curve）被定义为ROC曲线下与坐标轴围成的面积，]]></description><category></category></item><item><title><![CDATA[工作笔记记录]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119000206</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119000206</guid><author>KazeHelloWorld</author><pubDate>Wed, 18 Aug 2021 17:07:53 +0800</pubDate><description><![CDATA[工作笔记2021.07.22
2021.07.22
pyspark 获取sql数据
import os, re, json, time, datetime

from tqdm import tqdm
import pandas as pd
import numpy as np
from collections import Counter
from pyspark import SparkConf
from pyspark.sql import SparkSession

conf = SparkConf]]></description><category></category></item><item><title><![CDATA[面经汇总-1-模型]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119705458</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119705458</guid><author>KazeHelloWorld</author><pubDate>Sun, 15 Aug 2021 15:41:14 +0800</pubDate><description><![CDATA[面经汇总bert &amp; transformer
bert &amp; transformer
BERT
Transformer


transformer或bert的实现方法


transformer的attention实现



bert的两个上游任务如何实现

Masked LM：

mask 15%
80% [MASK]，10% random，10% unchange


Next Sentence Prediction (NSP)

[CLS] to predict
50% isNext，5]]></description><category></category></item><item><title><![CDATA[面试题-2]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119519926</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119519926</guid><author>KazeHelloWorld</author><pubDate>Wed, 11 Aug 2021 17:06:12 +0800</pubDate><description><![CDATA[面试题2L1， L2 正则的区别，L1为什么会造成稀疏描述一下 max_pool和avg_pool 正向反向传播介绍一下 self-attention 机制描述一下 Transformer 结构boost 和 baggingBagging和Boosting的区别：随机森林闭包还有迭代器模型参数GPU并行

参考链接
L1， L2 正则的区别，L1为什么会造成稀疏

L2正则：

我们发现，权重w每次乘上的是小于1的倍数进行收敛，而且其导数在w = 0 时没有办法做到左右两边导数异号，所以L2正则使得整个训练]]></description><category></category></item><item><title><![CDATA[页面化展示]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119611558</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119611558</guid><author>KazeHelloWorld</author><pubDate>Wed, 11 Aug 2021 17:05:21 +0800</pubDate><description><![CDATA[页面化展示脚本页面
做badcase分析，页面化查询
脚本
# coding:utf-8
import collections
import sys

from flask import Flask, render_template, request
import jieba
import leveldb
import pandas as pd
import time
import pickle

app = Flask(__name__)
level_obj = None


class LevelDb(]]></description><category></category></item><item><title><![CDATA[单调栈专题]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119329175</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119329175</guid><author>KazeHelloWorld</author><pubDate>Mon, 02 Aug 2021 17:09:26 +0800</pubDate><description><![CDATA[单调栈42.接雨水84. 柱状图中最大的矩形85.最大矩形
42.接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。

class Solution:
    def trap(self, height: List[int]) -&gt; int:
        stack = []
        ans = 0
        for i, h in enumerate(height):
            while stack and h]]></description><category></category></item><item><title><![CDATA[leetcode最热100道]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119010971</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/119010971</guid><author>KazeHelloWorld</author><pubDate>Fri, 23 Jul 2021 00:16:36 +0800</pubDate><description><![CDATA[leetcode4. 寻找两个正序数组的中位数5. 最长回文子串
4. 寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
思路： 二分查找两个数组中排序为k的值或k，k+1的均值，每次两个数组各取第前k/2个比较，小的那个以及后面都淘汰，该数组指数右移到后一位，循环操作，直到k==1或有一个数组淘汰完。
class Solution:
    def findMedianSortedArrays(self]]></description><category></category></item><item><title><![CDATA[动态规划专题]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118862547</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118862547</guid><author>KazeHelloWorld</author><pubDate>Sat, 17 Jul 2021 21:01:55 +0800</pubDate><description><![CDATA[动态规划139.单词拆分
139.单词拆分
给定一个非空字符串 s 和一个包含非空单词的列表 wordDict，判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
说明：
拆分时可以重复使用字典中的单词。
你可以假设字典中没有重复的单词。
class Solution:
    def wordBreak(self, s: str, wordDict: List[str]) -&gt; bool:
        dp = [False]*(len(s)+1)
        dp[0] = Tr]]></description><category></category></item><item><title><![CDATA[深度优先搜索和广度优先搜索]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118770056</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118770056</guid><author>KazeHelloWorld</author><pubDate>Thu, 15 Jul 2021 22:41:33 +0800</pubDate><description><![CDATA[617.合并二叉树
给定两个二叉树，想象当你将它们中的一个覆盖到另一个上时，两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠，那么将他们的值相加作为节点合并后的新值，否则不为 NULL 的节点将直接作为新二叉树的节点。
思路： 每次要存两个树节点的元祖共同遍历，直接在左树上进行操作，在循环中先将左树加上右树值，再对两个节点的左右子树判定，都为非空则入队列，否则直接赋值左树的左右子树为另一非空值。
bfs：
# Definition for a binary tr]]></description><category></category></item><item><title><![CDATA[买卖股票的最佳时机]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118726718</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118726718</guid><author>KazeHelloWorld</author><pubDate>Thu, 15 Jul 2021 22:00:07 +0800</pubDate><description><![CDATA[买卖股票的最佳时机买卖股票的最佳时机 II买卖股票的最佳时机 III
买卖股票的最佳时机 II
给定一个数组 prices ，其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易（多次买卖一支股票）。
注意：你不能同时参与多笔交易（你必须在再次购买前出售掉之前的股票）。

动态规划：
一维：交易日期，价格数组长度
二维：两种状态：持有或现金

class Solution:
    def maxProfit(self, price]]></description><category></category></item><item><title><![CDATA[567. 字符串的排列]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118753931</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118753931</guid><author>KazeHelloWorld</author><pubDate>Thu, 15 Jul 2021 11:05:30 +0800</pubDate><description><![CDATA[字符串排列
给定两个字符串 s1 和 s2，写一个函数来判断 s2 是否包含 s1 的排列。
换句话说，第一个字符串的排列之一是第二个字符串的 子串 。
思路： 维护26格char计数数组，全部为0时返回True，diff变量记录不同char个数，滑动窗口遍历数组，首先从起点出发，计算当前charcount和diff，然后每次只考虑左右位置，对左右位置对应char的count进行操作，最后若diff为0返回True
class Solution:
    def checkInclusion(self, s]]></description><category></category></item><item><title><![CDATA[连续乘积子数组]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118679563</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118679563</guid><author>KazeHelloWorld</author><pubDate>Mon, 12 Jul 2021 19:15:14 +0800</pubDate><description><![CDATA[总结： 对于乘积数组，常用方法为保存最大最小两个值，遇到负值就交换
152.乘积最大子数组
给你一个整数数组 nums ，请你找出数组中乘积最大的连续子数组（该子数组中至少包含一个数字），并返回该子数组所对应的乘积。
乘以一个负数，最大最小发生转换，所以维护保存最大最小值，每次遇到负数，最大乘以负数变成最小， 最小乘以负数变成最大
class Solution:
    def maxProduct(self, nums: List[int]) -&gt; int:
        max_pro = nu]]></description><category></category></item><item><title><![CDATA[算法—双指针]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118673217</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118673217</guid><author>KazeHelloWorld</author><pubDate>Mon, 12 Jul 2021 13:56:08 +0800</pubDate><description><![CDATA[双指针旋转数组
旋转数组
给定一个数组，将数组中的元素向右移动 k 个位置，其中 k 是非负数。
进阶：
尽可能想出更多的解决方案，至少有三种不同的方法可以解决这个问题。
你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗？
环状替换：
思路：

依次交换右移，每次从起点开始回到起点走了a圈遍历了an个元素，同时每个元素相隔为k交换了b个元素，有等式an=bk，所以 b=lcm(n,k)/kb =\text{lcm}(n,k)/kb=lcm(n,k)/k,所以外层循环的次数为nklcm(n,k)]]></description><category></category></item><item><title><![CDATA[918. 环形子数组的最大和]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118654880</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118654880</guid><author>KazeHelloWorld</author><pubDate>Sun, 11 Jul 2021 15:32:29 +0800</pubDate><description><![CDATA[918. 环形子数组的最大和
给定一个由整数数组 A 表示的环形数组 C，求 C 的非空子数组的最大可能和。
在此处，环形数组意味着数组的末端将会与开头相连呈环状。（形式上，当0 &lt;= i &lt; A.length 时 C[i] = A[i]，且当 i &gt;= 0 时 C[i+A.length] = C[i]）
此外，子数组最多只能包含固定缓冲区 A 中的每个元素一次。（形式上，对于子数组 C[i], C[i+1], …, C[j]，不存在 i &lt;= k1, k2 &lt;= j 其中 k]]></description><category></category></item><item><title><![CDATA[55. 跳跃游戏 & 45. 跳跃游戏 II]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118637140</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118637140</guid><author>KazeHelloWorld</author><pubDate>Sat, 10 Jul 2021 20:57:32 +0800</pubDate><description><![CDATA[跳跃游戏跳跃游戏
跳跃游戏
给定一个非负整数数组 nums ，你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。
思路：
每次保存能最远到达的位置，如果当前位置大于最远位置，提前返回，否则每次更新最远距离
class Solution:
    def canJump(self, nums: List[int]) -&gt; bool:
        max_length = 0
        for i in range(len(nu]]></description><category></category></item><item><title><![CDATA[打家劫舍]]></title><link>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118609216</link><guid>https://blog.youkuaiyun.com/KazeHelloWorld/article/details/118609216</guid><author>KazeHelloWorld</author><pubDate>Fri, 09 Jul 2021 16:40:58 +0800</pubDate><description><![CDATA[198.打家劫舍
你是一个专业的小偷，计划偷窃沿街的房屋。每间房内都藏有一定的现金，影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统，如果两间相邻的房屋在同一晚上被小偷闯入，系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组，计算你 不触动警报装置的情况下 ，一夜之内能够偷窃到的最高金额。
思路： 动态规划，子问题每次查看当前值与跳一格值和与前一格值比较，每个位置保存当前及之前的最大值
class Solution:
    def rob(self, nums: List[int])]]></description><category></category></item></channel></rss>