数据科学

数据科学专业人员,机器学习专家以及有兴趣了解该领域的人员的问答

2
为什么将ReLU用作激活功能?
激活函数用于w * x + b在神经网络的类型的线性输出中引入非线性。 对于激活功能(例如Sigmoid),我能够直观地理解。 我了解ReLU的优势,它可以避免反向传播过程中死亡的神经元。但是,我无法理解为什么ReLU的输出为线性时为什么将其用作激活函数? 如果不引入非线性,激活函数的全部意义就不会被破坏吗?

1
什么是“体验重播”及其好处?
我一直在阅读Google的DeepMind Atari 论文,并且试图理解“体验重播”的概念。许多其他强化学习论文(尤其是AlphaGo论文)中都有经验重播,所以我想了解它的工作原理。以下是一些摘录。 首先,我们使用一种称为经验重播的生物学启发机制来对数据进行随机化,从而消除观察序列中的相关性并平滑数据分布的变化。 然后,本文阐述如下: 虽然存在其他用于在强化学习环境中训练神经网络的稳定方法(例如,神经拟合Q迭代),但这些方法涉及从头进行数百次迭代的网络重复训练。因此,与我们的算法不同,这些方法效率低下,无法在大型神经网络中成功使用。我们使用图1所示的深度卷积神经网络对近似值函数进行参数化,其中是迭代 Q网络的参数(即权重)。为了执行体验重播,我们在每个时间步长存储座席的体验。Q (s ,a ; θ一世)问(s,一种;θ一世)Q(s, a; \theta_i)θ一世θ一世\theta_i一世一世iËŤ=(秒Ť,一Ť,[RŤ,秒t + 1)ËŤ=(sŤ,一种Ť,[RŤ,sŤ+1个)e_t = (s_t, a_t, r_t, s_{t+1})ŤŤt在数据集中。在学习期间,我们对经验样本(或小批)应用Q学习更新,这些样本是从存储的样本池中随机抽取的。迭代处的Q学习更新使用以下损失函数:dŤ= { e1个,… ,eŤ}dŤ={Ë1个,…,ËŤ}D_t = \{e_1, \dots, e_t \}(s ,a ,r ,s′)〜ü(D )(s,一种,[R,s′)〜ü(d)(s, a, r, s') \sim U(D)一世一世i 大号一世(θ一世)= E(s ,a ,r ,s′)〜ü(D )[ ( r + γ最高一种′Q (小号′,一′; θ-一世)- Q …

1
处理经度/纬度特征的方法
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 3年前关闭。 我正在研究具有25个功能的虚构数据集。其中两个功能是地点的纬度和经度,其他功能是pH值,海拔高度,windSpeed等变化范围的功能。我可以对其他要素进行归一化,但是如何处理纬度/经度要素? 编辑:这是预测农业产量的问题。我认为纬度/经度非常重要,因为位置在预测中至关重要,因此造成了困境。

4
“ LSTM单元中的单位数”是什么意思?
来自Tensorflow代码:Tensorflow。RnnCell。 num_units: int, The number of units in the LSTM cell. 无法理解这是什么意思。LSTM电池的单位是什么。输入,输出和忘记门?这是否表示“深度LSTM的循环投影层中的单位数”。那么为什么将其称为“ LSTM单元中的单位数”?什么是LSTM单元,与VS LSTM块的区别是什么?如果不是单元,最小LSTM单位是什么?

4
如何根据熊猫数据框中的其他列填充缺失值?
假设我有一个5 * 3数据框,其中第三列包含缺失值 1 2 3 4 5 NaN 7 8 9 3 2 NaN 5 6 NaN 我希望为基于缺失值的规则生成价值,即第一产品第二列 1 2 3 4 5 20 <--4*5 7 8 9 3 2 6 <-- 3*2 5 6 30 <-- 5*6 如何使用数据框?谢谢。 如何添加条件以计算像这样的缺失值? if 1st % 2 == 0 then 3rd = …
19 pandas 

1
如何决定神经网络架构?
我想知道如何确定隐藏层中有多少个节点,以及在构建神经网络体系结构时要放置多少个隐藏层。 我了解输入和输出层取决于我们拥有的训练集,但是总体上我们如何确定隐藏层和整体体系结构?

3
非正式文本中用于命名实体识别的数据集
我目前正在搜索带标签的数据集,以训练模型以从非正式文本中提取命名实体(类似于推文)。由于我的数据集中的文档中经常缺少大写字母和语法,因此我要寻找的域外数据比新闻和期刊条目更“非正式”,而当今的许多最新技术称为实体识别系统训练有素。 有什么建议吗?到目前为止,我只能从这里发布的Twitter上找到5万个令牌。
18 dataset  nlp 

3
如何扩展算法开发?
在进行探索性数据分析和开发算法的过程中,我发现大部分时间都花在可视化,编写代码,在小型数据集上运行,重复的周期中。我拥有的数据往往是计算机视觉/传感器融合类型的东西,而算法则是视觉密集型的(例如,对象检测和跟踪等),而现有算法在这种情况下不起作用。我发现这需要很多次迭代(例如,拨入算法的类型或调整算法中的参数或获得正确的可视化效果),而且即使在较小的数据集上,运行时间也很长,因此总共需要一段时间。 如何加速算法开发本身并使其更具可扩展性? 一些特定的挑战: 如何减少迭代次数?(尤其是在不尝试不同版本并检查其行为的情况下,似乎很难预见哪种算法,更不用说算法的细节了) 在开发过程中如何在更大的数据集上运行?(通常是从小型数据集到大型数据集,是当看到一堆新行为和新问题时) 如何更快地调整算法参数? 如何将机器学习类型工具应用于算法开发本身?(例如,不要手工编写算法,而是编写一些简单的构建基块并以从问题中学习的方式将它们组合起来,等等)
18 algorithms 

4
如何用元数据注释文本文档?
拥有大量文本文档(自然语言,非结构化),用一些语义元数据注释它们的可能方法是什么?例如,考虑一个简短的文档: I saw the company's manager last day. 为了能够从中提取信息,必须使用附加数据对其进行注释,以减少歧义。查找此类元数据的过程不成问题,因此假定它是手动完成的。问题是如何以一种可以更方便/有效地进行进一步分析的方式存储这些数据? 一种可能的方法是使用XML标记(请参见下文),但似乎太冗长了,也许有更好的方法/准则将这种元数据存储在文本文档中。 <Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s manager <Time value="2014-5-29">last day</Time>.


3
逻辑函数中成本函数的Python实现:为什么在一个表达式中使用点乘法但在另一个表达式中使用逐元素乘法
我有一个非常基本的问题,涉及逻辑回归设置中的Python,numpy和矩阵乘法。 首先,让我为未使用数学符号表示歉意。 我对矩阵点乘法与元素明智的倍增的使用感到困惑。成本函数由下式给出: 在python中,我将其写为 cost = -1/m * np.sum(Y * np.log(A) + (1-Y) * (np.log(1-A))) 但例如,此表达式(第一个表达式-J关于w的导数) 是 dw = 1/m * np.dot(X, dz.T) 我不明白为什么在上面使用点乘法是正确的,但是在成本函数中使用逐元素乘法,即为什么不这样做: cost = -1/m * np.sum(np.dot(Y,np.log(A)) + np.dot(1-Y, np.log(1-A))) 我完全理解这一点并没有得到详尽的解释,但是我想这个问题是如此简单,以至于即使具有基本逻辑回归经验的人也会理解我的问题。


1
t-sne尺寸有意义吗?
t-sne嵌入的尺寸有任何含义吗?像PCA一样,我们具有线性变换的方差最大化的感觉,但是对于t-sne,除了我们定义的用于映射和最小化KL距离的空间之外,还有直觉吗?

4
什么时候使用曼哈顿距离与欧几里得距离相反?
我正在尝试寻找一个很好的论据,说明为什么在机器学习中为什么要使用曼哈顿距离而不是欧几里得距离。 到目前为止,我发现与一个很好的论点最接近的事情是在麻省理工学院的这次演讲中。 在36:15,您可以在幻灯片上看到以下语句: “通常使用欧几里德度量;如果不同维度之间不具有可比性,则曼哈顿可能是合适的。 ” 在教授说之后不久,由于爬行动物的腿数从0到4变化(而其他特征是二进制的,仅从0到1变化),因此“腿数”特征最终将具有更高的特征如果使用欧氏距离,则为重量。果然,这确实是对的。但是如果使用曼哈顿距离,也会有一个问题(只是因为我们不会像欧几里德距离那样对差进行平方处理,所以该问题会得到稍微缓解)。 解决上述问题的一种更好的方法是将“支路数”特征规格化,以便其值始终在0到1之间。 因此,由于有更好的解决方法,至少在我看来,在这种情况下使用曼哈顿距离的论点缺乏要点。 有人真的知道为什么以及何时有人会在欧几里得上使用曼哈顿距离吗?谁能给我一个使用曼哈顿距离会产生更好结果的例子吗?

1
如何使用keras处理多类分类中的字符串标签?
我是机器学习和keras的新手,现在正在使用keras处理多类图像分类问题。输入的是带标签的图像。经过一些预处理后,训练数据在Python列表中表示为: [["dog", "path/to/dog/imageX.jpg"],["cat", "path/to/cat/imageX.jpg"], ["bird", "path/to/cat/imageX.jpg"]] “狗”,“猫”和“鸟”是类标签。我认为应该使用一站式编码解决此问题,但是我对如何处理这些字符串标签不是很清楚。我已经尝试过sklearn的LabelEncoder(): encoder = LabelEncoder() trafomed_label = encoder.fit_transform(["dog", "cat", "bird"]) print(trafomed_label) 输出是[2 1 0],这与我对[[1,0,0],[0,1,0],[0,0,1]]之类的东西的期望输出不同。可以通过一些编码来完成,但是我想知道是否有某种“标准”或“传统”方式来处理它?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.