https://leetcode-cn.com/problems/remove-element/

题目

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

阅读全文 »

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

题目

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

阅读全文 »

https://leetcode-cn.com/problems/two-sum/

题目

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

阅读全文 »

快速入门

代码书写

HTML+CSS+JavaScript三件套

在编辑器VS Code中直接键入doc可以快速创建html结构

在html中嵌入CSS样式:

<head>

1
<link href="./chatroom.css" rel="stylesheet" type="text/css" />

在html中嵌入js脚本:

一般在<body>末尾

1
<script src="test1.js"></script>
阅读全文 »

技术栈

{"t":"heading","d":1,"v":"前端技能","c":[{"t":"heading","d":2,"v":"交互/设计"},{"t":"heading","d":2,"v":"语言","c":[{"t":"list_item","d":3,"v":"HTML"},{"t":"list_item","d":3,"v":"CSS"},{"t":"list_item","d":3,"v":"JavaScript"},{"t":"list_item","d":3,"v":"PHP"}]},{"t":"heading","d":2,"v":"行业标准","c":[{"t":"list_item","d":3,"v":"DOM"},{"t":"list_item","d":3,"v":"ES2015"},{"t":"list_item","d":3,"v":"HTTP"},{"t":"list_item","d":3,"v":"JSON"},{"t":"list_item","d":3,"v":"XML"}]},{"t":"heading","d":2,"v":"框架","c":[{"t":"list_item","d":3,"v":"React.js"},{"t":"list_item","d":3,"v":"Angular.js"},{"t":"list_item","d":3,"v":"jQuery"},{"t":"list_item","d":3,"v":"Vue.js"},{"t":"list_item","d":3,"v":"lodash"}]},{"t":"heading","d":2,"v":"兼容性","c":[{"t":"list_item","d":3,"v":"IE"},{"t":"list_item","d":3,"v":"CSS3新特性"},{"t":"list_item","d":3,"v":"HTML5新特性"},{"t":"list_item","d":3,"v":"ES2015"},{"t":"list_item","d":3,"v":"移动端"}]},{"t":"heading","d":2,"v":"前端工程","c":[{"t":"list_item","d":3,"v":"npm"},{"t":"list_item","d":3,"v":"webpack"},{"t":"list_item","d":3,"v":"postcss"}]},{"t":"heading","d":2,"v":"调试","c":[{"t":"list_item","d":3,"v":"浏览器调试工具"},{"t":"list_item","d":3,"v":"Fiddler"}]},{"t":"heading","d":2,"v":"团队协作","c":[{"t":"list_item","d":3,"v":"Git/SVN"},{"t":"list_item","d":3,"v":"编码规范"},{"t":"list_item","d":3,"v":"文档管理"}]},{"t":"heading","d":2,"v":"性能","c":[{"t":"list_item","d":3,"v":"优化规则"},{"t":"list_item","d":3,"v":"开发者工具"},{"t":"list_item","d":3,"v":"浏览器管理"}]},{"t":"heading","d":2,"v":"安全性","c":[{"t":"list_item","d":3,"v":"XSS"},{"t":"list_item","d":3,"v":"CSRF"},{"t":"list_item","d":3,"v":"加密解密"},{"t":"list_item","d":3,"v":"编码解码"}]},{"t":"heading","d":2,"v":"编程思想","c":[{"t":"list_item","d":3,"v":"函数式编程"},{"t":"list_item","d":3,"v":"面向对象"},{"t":"list_item","d":3,"v":"设计模式"}]}]}

浏览器架构

参考资料:
感知器
线性单元
李宏毅2020:Regression
李宏毅2020:Regression-文字版

感知器

感知器,激活函数是阶跃函数,和神经元的本质上一样,只是激活函数不同
上世纪提出的感知器的概念,现在

模型

  • 输入
    • 特征向量 $x=(x_1,x_2,…x_n)$
    • 权值 $w=(w_1,w_2,…,w_n)$
    • 偏置项 $b$
  • 激活函数
    • $f(z)=\left{\begin{array}{lr}
      1 & z>0 \
      0 & \text { otherwise }
      \end{array}\right.$
  • 输出
    • $y=f(wx+b)$

二分类问题

感知器模型可以用于解决二分类问题:对给定输入,输出0或1

例 感知器实现布尔运算

输入: $x=(x_1, x_2)$
输出: $y=f(w·x+b)$

激励函数: 阶跃函数 实现二分类

  1. and 与运算
    $w 1=0.5, \quad w 2=0.5, \quad b=-0.8$
    $f(z)=\left{\begin{array}{l}1 & z>0 \ 0 & \text { otherwise }\end{array}\right.$

  2. or 或运算
    $w 1=0.5, \quad w 2=0.5, \quad b=-0.3$
    $f(z)=\left{\begin{array}{l}1 & z>0 \ 0 & \text { otherwise }\end{array}\right.$

上述例子是线性可分的问题
如图 and 用线性函数可以把true和false分开

训练

优化目标:使损失最小的输入权值w和偏置项b

感知器训练算法

  1. 初始化
    $w$和$b$初始化为0
  2. 迭代
    $\begin{aligned} &w_{i} & \leftarrow &\quad w_{i}+\Delta w_{i} \ &b & \leftarrow &\quad b+\Delta b \end{aligned}$
    其中
    $\begin{aligned} &\Delta w_{i} & =&\quad \eta (t-y)x_i \ &\Delta b & =&\quad \eta (t-y) \end{aligned}$
数学表达 含义
$y$ 感知器的输出值
$t$ target/label,训练样本的真实值
$\eta $ 学习速率

线性单元