Zheng Chu's Blog

让希望永驻


  • 主页

  • 所有专栏

  • 历史文章

  • 标签

  • 关于我

优化算法

Posted on 2020-06-16 Edited on 2020-12-06 In 机器学习

This:2020.06.16

last:date: 2019-08-17 08:21:58

梯度如何下降

一、先抓一部分数学分析的知识

(1)方向导数的出场:偏导数刻画了函数在特定坐标轴方向上的变化率,而方向导数设法获取函数在特定方向上的变化率。

★ 既然是变化率,由极限定义斜率可以猜测,这也是一个极限值;即然是极限值,那么假设在目标点$P_0$附近存在一个微小变化,导致该变化率突然增大或减小,可以想像这个地方是陡峭的;也就是说方向导数越大,函数在该方向的变化越快。

Read more »

Tensorfow2复习--技巧

Posted on 2020-06-15 Edited on 2020-12-06 In DeepLearning

Tensorfow2.0复习笔记2

梯度消失/爆炸

问题:Gradients often get smaller and smaller as the algorithm progresses down to the lower layers.

原因:通过神经网络输出后的参数方差(Variance)都要大于输入时的参数方差,层数越多,在经过顶层的激活函数后最终满溢(Saturation)

Read more »

KL散度与负对数似然函数

Posted on 2020-06-13 Edited on 2020-12-06 In 深度学习

[toc]

更新时间:20.06.16

上次时间:date: 2019-09-08 17:17:10

最小负对数似然

先给出似然函数:

为什么对上面的似然函数取对数的原因:

Read more »

GMM

Posted on 2020-06-13 Edited on 2020-12-06 In 机器学习

Freshing time:20.06.13


为什么高斯混合模型要用隐变量?

★ 通常,通过$Z$是类别标签计算数据$X$的MLE,但是无监督情况下,不知道$Z$。因此我们假设$Z\sim\textit{Multinomial}(\phi)$也就是多项式分布(相当于$k$个面的骰子投$n$ 次的分布)作为假设的类别。

Read more »

Tensorfow2复习--初步Keras

Posted on 2020-06-12 Edited on 2020-12-06 In DeepLearning

Tensorfow2.0—初步Keras

激活函数

1、Sigmoid函数,又称为Logistic函数,特点:输出范围[0,1]。

1
2
def Sigmoid(z):
return 1 / (1 + np.exp(-z))

2、Tanh函数:$\text{Tanh}(z)=2\text{Sigmoid}(2z) - 1$ ,特点:output范围在[-1, 1]之间,效果是在训练初期每层网络的输出都或多或少的聚集在0附近,*可以加快收敛。

Read more »

Scala-part3

Posted on 2020-06-12 Edited on 2020-12-06 In Scala

不可变集合

  • Nil是Nothing类型实例,Nothing类型是所有其他Scala类型的一个不可实例化的子类型。

  • List: 空的表等于Nil,表尾部后一个是Nil。

    • 头尾取不一样:
    1
    2
    3
    4
    5
    6
    7
    8
    scala> primes
    val res3: List[Int] = List(2, 3, 5, 7, 11, 13)

    scala> primes.head
    val res5: Int = 2

    scala> primes.tail
    val res6: List[Int] = List(3, 5, 7, 11, 13)
  • foreach、map、reduce( 两个参数)

  • ::右操作符是List的放法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    scala> val first = Nil.::(1)
    val first: List[Int] = List(1)
    //生成List
    scala> val first = 1:: Nil
    val first: List[Int] = List(1)

    //用::在List前面增加元素
    scala> val second = 2 :: first
    val second: List[Int] = List(2, 1)

    scala> second.tail == first
    val res39: Boolean = true
  • 其他操作符:

    • 操作符记法:List drop 2
    • 点记法:List.flatten
    • 差别:没有参数时,必须采用点记法。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    //空List前面加元素
    scala> val first = 1:: Nil
    val first: List[Int] = List(1)

    //List合并List
    scala> List(1, 2) ::: List(2, 3)
    val res40: List[Int] = List(1, 2, 2, 3)

    //List合并集合
    scala> List(1, 2) ++ Set(3, 4, 3)
    val res41: List[Int] = List(1, 2, 3, 4)

    //List比较
    scala> List(1, 2) == List(1, 2)
    val res42: Boolean = true

    //取唯一元素
    scala> List(2, 3, 4, 5, 3).distinct
    val res43: List[Int] = List(2, 3, 4, 5)

    //丢带前k个元素
    scala> List('a', 'b', 'c', 'd') drop 2
    val res44: List[Char] = List(c, d)

    //谓词函数塞选
    scala> List(23, 8, 14, 21) filter (_ > 18)
    val res45: List[Int] = List(23, 21)

    //归并List
    scala> List(List(1, 2), List(3, 4)).flatten
    val res46: List[Int] = List(1, 2, 3, 4)

    //按条件分割List
    scala> List(1,2,3,4,5) partition ( _ < 3)
    val res48: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))

    //切割[i,j)內的元素
    scala> List(1, 2, 3) slice (1, 3)
    val res49: List[Int] = List(2, 3)

    //谓词函数排序
    scala> List("apple", "to") sortBy (_.size)
    val res51: List[String] = List(to, apple)

    //字典顺序排序
    scala> List("apple", "to").sorted
    val res52: List[String] = List(apple, to)

    // 在位置做切割
    scala> List(2, 3, 5, 7) splitAt 2
    val res53: (List[Int], List[Int]) = (List(2, 3),List(5, 7))

    //取出前k个
    scala> List(2, 3, 5, 7, 11, 13) take 3
    val res54: List[Int] = List(2, 3, 5)

    //zip
    scala> List(1, 2) zip List ("a", "b")
    val res55: List[(Int, String)] = List((1,a), (2,b))

    // List尾部追加元素
    scala> val appended = List(1, 2, 3, 4) :+ 5
    val appended: List[Int] = List(1, 2, 3, 4, 5)

    // 取右边k个值
    scala> val suffix = appended takeRight 3
    val suffix: List[Int] = List(3, 4, 5)

    //丢弃右边k个值
    scala> val middle = suffix dropRight 2
    val middle: List[Int] = List(3)
Read more »

Mxnet-Pytorch-part1---LR-Minist

Posted on 2020-06-12 Edited on 2020-12-06 In Pytorch

LR

  • $y = \mathbf{w}^\top \mathbf{x} + b + \epsilon \text{ where } \epsilon \sim \mathcal{N}(0, \sigma^2).$
  • $p(y|\mathbf{x}) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp\left(-\frac{1}{2 \sigma^2} (y - \mathbf{w}^\top \mathbf{x} - b)^2\right).$
Read more »

Scala-part2

Posted on 2020-06-11 Edited on 2020-12-06 In Scala

Scala-part2

>函数<

  • 在scala中,函数是可重用的命名表达式。
  • 尽可能构建纯函数,类似数学意义上的函数。
  1. 无输出函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 无输出函数
scala> def hi = "hi"
def hi: String

scala> hi
val res75: String = hi


scala> def multiplier(x: Int, y: Int): Int = {x * y}
def multiplier(x: Int, y: Int): Int

scala> multiplier(6, 7)
val res77: Int = 42

scala> def safeTrim(s: String): String={
| if(s == null) return null
| s.trim()
| }
def safeTrim(s: String): String

scala> val t = safeTrim(" abc ")
val t: String = abc
Read more »

推荐系统

Posted on 2020-06-09 Edited on 2020-12-06 In 推荐

init

  • 我个人建立的推荐系统认知如下:
    • 首先推荐系统的目的是什么?
        1. 用户的角度是从海量信息中获得感兴趣信息,获得满足感;
        2. 公司的角度是提高收益,这与提高用户满足感是正比;
    • 那么推荐系统做什么?
      • 想象推荐系统就是一口井,每一个人的信息似一杯水,每杯水包含不同杂质,包括红色的物质,这是每个人的最爱🍎 ;所有的人往井里倒水,这口井的目的是过滤出来红色物质,反馈给倒水的每个人,诱导每个人继续灌水。这些红色物质便可算人的潜在感兴趣信息。
Read more »

Scala-part1

Posted on 2020-06-08 Edited on 2020-12-06 In Scala

Scala-part1

变量不能改变为它指定的类型,所以不能将一个变量重新赋值为类型不兼容的数据。

1
val x: <type> = xxx
  • 类型转换:

scala不允许从较高等级类型自动转换到较低等级类型。

1
2
3
4
5
6
7
8
scala> val l: Long = 20
val l: Long = 20

scala> val i: Int = l
^
error: type mismatch;
found : Long
required: Int
Read more »
<1…345…9>
Zheng Chu

Zheng Chu

90 posts
20 categories
25 tags
GitHub 简书 CSDN E-Mail
© 2021 Zheng Chu
Powered by Hexo v4.2.1
|
Theme – NexT.Pisces v7.3.0
|