美文网首页互联网科技程序员有意思的文章
生成式艺术和算法创作02-随机和噪声

生成式艺术和算法创作02-随机和噪声

作者: Kidult | 来源:发表于2018-10-14 23:16 被阅读62次

    生成式艺术和算法创作01-概述

    利用随机性(Randomness)和噪声(Noise),可能是最古老、最简单、最常见的生成式艺术的方法。

    艺术家用各种参数来定义一个变化空间,可以在一定范围内取值,随机选中的值影响被操控的元素,形成最终的作品。

    随机性表示一定程度上的目的、动机、规则等可预测性的缺失。引入随机性可以带来多样、不可预测的结果,从而让作品更丰富而有活力。

    产生各种概率分布的随机数

    概率分布是随机变量的概率性质。比如,符合均匀分布的随机数,表示所有可能选项的出现概率是一样的。选择不同的概率分布,可以让随机数产生不同的结果。

    常见的概率分布:

    http://blog.cloudera.com/blog/2015/12/common-probability-distributions-the-data-scientists-crib-sheet/
    • Uniform distribution:均匀分布
    • Bernoulli distribution:伯努利分布,就是常见的 0-1 分布,即随机变量只取 0 或者 1,频率分别为 1−p 和 p
    • Binomial distribution:二项分布,例如在一连串 N/yes/no 中八次成功的概率。二项分布公式基于伯努利分布得到,因为每次实验都是独立的,因此每次实验都是一次伯努利实验
    • Hypergeometric distribution:超几何分布,常用来表示在 N 个物品中有指定商品 M 个,不放回抽取 n 个,抽中指定商品的个数
    • Poisson distribution:泊松分布,主要用来研究单位时间或单位空间内某事件的发生次数,事件的发生必须是相互独立的,比如单位时间内通过某一交通灯的车辆数

    具有相同分布函数的随机变量一定是同分布的,因此可以用分布函数来描述一个分布,但更常用的描述手段是概率密度函数(Probability Density Functions)。利用概率分布和密度函数,可以引导和交叉训练随机性,让某些部分发生概率更高,而另一些概率更低。

    噪声

    In signal processing, white noise is a random signal having equal intensity at different frequencies, giving it a constant power spectral density. -- Wiki

    我们经常会听到一个名词:白噪声。

    它是什么意思呢?为什么噪声还有颜色呢?

    白噪声是一种功率谱密度为常数的随机信号或随机过程。即信号在各个频段上的功率是一样的。

    由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是「白色的」,此信号也因此被称作白噪声。相对的,其他不具有这一性质的噪声信号被称为有色噪声。

    需要注意,相关性和概率分布是不同的概念。白色仅意味着信号是不相关的,白噪声的定义除了要求均值为零,并没有对信号应当服从哪种概率分布作出任何假设。因此,如果某白噪声过程服从高斯分布,它就是「高斯白噪声」。类似的,还有泊松白噪声、柯西白噪声等。

    噪声的颜色分类,来自于将频谱中的噪声谱密度函数,和频谱中的光波信号做形式上的类比,也就是说,如果一束光波在频域内具有和蓝噪声相同的谱密度图样,则这束光波看上去将呈现蓝色。

    • White noise: 频率密度均匀分布
    • Brown noise (Red noise): 由布朗运动造成,又称为随机移动噪音(random walk noise)
    • Pink noise (F noise): 功率谱密度与频率成反比的频谱信号或过程。在粉红噪声中,每个倍频程中都有一个等量的噪声功率。在生成式艺术中很常用,因为它可以模拟自然现象中的随机性

    Aleatoric Music 机遇音乐

    A process is said to be aleatoric ... if its course is determined in general but depends on chance in detail.

    —— Werner Meyer- Eppler, 1957

    机遇音乐是一种包含随机性元素的音乐创作。

    在一首音乐作品中,作曲家在某些地方会让演奏者按自己的意愿,或使用一些系統来决定音乐的演奏,由于随机性不可能每次都得出相同的结果,所以乐曲每次的演奏版本都不完全相同。

    Iannis Xenakis 开创了机遇音乐的一个子类:随机音乐(Stochastic music),即在音乐创作中或者在演奏中使用随机过程生成乐曲片段。

    Xenakis 经常使用计算机来制作乐谱,例如包括 Morsima-Amorsima 和 Atrées 在内的 ST 系列。

    Noise music 噪声音乐

    Noise music 是音乐的一个子流派,研究声学噪声的概念并将其作为重要的声学材料。

    I believe that the use of noise to make music will continue and increase until we reach a music produced through the aid of electrical instruments which will make available for musical purposes any and all sounds that can be heard.

    — John Cage, The Future of Music: Credo (1937)

    让我们来听听日本著名的噪音音乐人 Merzbow 的一首作品,感受一下什么是噪声音乐:

    噪音和音乐的定义因人而异,如果噪音是指让人不舒服的声音的话,流行音乐对我而言就是噪音。

    ——Merzbow

    在工业噪音、噪音摇滚、No wave 和 Harsh noise 之后,出现了大量的噪音音乐家,风格包括 Ambient、Microsound、Glitch 等,更强调微妙的脉冲式声响和敏感的听觉。

    Random walk

    Random walk 1905 年由皮尔逊首次提出,它是一种数学统计模型,由一连串轨迹组成,每一步根据概率随机选择。步长可以是固定也可以是动态的。

    一维 Random Walk

    Brownian movement 是 Random walk 的特例(step 为 0)。所以上文提到的 Brown noise 也称为 Random walk noise。

    随机漫步的算法虽然简单,但是经过多次迭代,可以产生丰富的随机效果,所以在生成式艺术中被广泛使用。

    Chance and Order 是 Kenneth Martin 1971 使用随机漫步规则创作的一个系列。

    the points of intersection on a grid of squares are numbered and the numbers are written on small cards and picked at random... A line is made between each successive pair of numbers as they are picked out.

    ——Kenneth Martin

    Quantum cloud 是艺术家 Antony Gormley 1999 年完成的当代雕塑作品。它由一系列四面体单元构成,由 1.5 米长的钢制成。钢架部分用 Random walk 算法生成。

    Perlin noise

    Perlin noise 是由 Ken Perlin 发明的自然噪声生成算法,经常用来模拟自然界中的噪声现象、人体的随机运动、蚂蚁行进的线路等。还可以通过计算分形来模拟云朵,火焰等非常复杂的纹理。

    在很多生成式系统中,比如游戏制作场景里的贴图材质、波澜起伏的地面和海洋,很多都是用 perlin noise 生成的。它旨在描述自然中的随机效果,创建的纹理可以直接运用于顶点着色器,而不是像纹理映射技术,先生成一张纹理图,然后把贴图附加到一个三维物体上。也就是说,只需要提供每个顶点的 (x,y,z) 的坐标,传入 perlin noise 函数,计算得到一个随机数,然后与原颜色运算,得到新的颜色,如同直接在物体表面绘制纹理一样。

    Perlin 认为,理想的噪声函数应当具有以下性质:

    1. 旋转统计不变性(不管怎么旋转它的域都有同样的统计特性)
    2. 能量在频谱上集中于一个窄带(图像是连续的,高频分量受限)
    3. 变换统计不变性(不管如何平移它的域都有同样的统计特性)

    产生 2D Perlin Noise 的方法:

    1. 为所有坐标为(x,y)且 x, y 都是整数的点指定一个值,同时指定一个梯度,这些点将空间分成方格;
    2. 对于坐标轴为整数的点,即上述方格的顶点的值作为该点的值;对于某个方格内部的点(x,y),用所在方格四个顶点的值和梯度进行插值。

    为了简化计算,方便硬件实现,Ken Perlin 在 2002 年改进了方法,称为 Simplex 噪声。Simplex 噪声使用 [图片上传失败...(image-9df011-1539530080918)]作为插值函数,避免了导数中的线性部分。

    Ref


    00 的文集

    相关文章

      网友评论

        本文标题:生成式艺术和算法创作02-随机和噪声

        本文链接:https://www.haomeiwen.com/subject/xkcxzftx.html