亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gaussianfunction.cs

?? A Java Neural Network Library
?? CS
字號:
?/***********************************************************************************************
 COPYRIGHT 2008 Vijeth D

 This file is part of NeuronDotNet.
 (Project Website : http://neurondotnet.freehostia.com)

 NeuronDotNet is a free software. You can redistribute it and/or modify it under the terms of
 the GNU General Public License as published by the Free Software Foundation, either version 3
 of the License, or (at your option) any later version.

 NeuronDotNet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.

 You should have received a copy of the GNU General Public License along with NeuronDotNet.
 If not, see <http://www.gnu.org/licenses/>.

***********************************************************************************************/

using System;
using System.Runtime.Serialization;

namespace NeuronDotNet.Core.SOM.NeighborhoodFunctions
{
    /// <summary>
    /// Gaussian Neighborhood Function. It is a continuous bell shaped curve centered at winner neuron.
    /// </summary>
    [Serializable]
    public sealed class GaussianFunction : INeighborhoodFunction
    {
        /* 
         *  Gaussian function = a * Exp( - ((x-b)square) / 2 (c square))
         *
         *  The parameter 'a' is the height of the curve's peak, 'b' is the position of the center of
         *  the peak, and 'c' controls the width of the bell shape.
         *
         *  For a Gaussian Neighborhood function,
         *  a = unity (the neighborhood at the winner)
         *  b = winner position
         *  c = depends on training progress.
         *
         *  Initial value of c is obtained from the user (as learning radius)
         *  Note that, (x-b)square denotes the euclidean distance between winner neuron 'b' and neuron 'x' 
         *
         *                     _._
         *                    /   \
         *                   |     |
         *                  /       \
         *             ___-           -___
         *                      .
         *                Winner Position
         */

        private readonly double sigma = 0d;

        /// <summary>
        /// Gets the initial value of sigma
        /// </summary>
        /// <value>
        /// Initial value of sigma
        /// </value>
        public double Sigma
        {
            get { return sigma; }
        }

        /// <summary>
        /// Creates a new Gaussian Neighborhood Function
        /// </summary>
        /// <param name="learningRadius">
        /// Initial Learning Radius
        /// </param>
        public GaussianFunction(int learningRadius)
        {
            // Full Width at Half Maximum for a Gaussian curve 
            //        = sigma * Math.Sqrt(2 * ln(2)) = sigma * 2.35482

            // Full Width at Half Maximum (FWHM) is nothing but learning diameter
            // so, learning radius = 1.17741 * sigma

            this.sigma = learningRadius / 1.17741d;
        }

        /// <summary>
        /// Deserialization Constructor
        /// </summary>
        /// <param name="info">
        /// Serialization information to deserialize and obtain the data
        /// </param>
        /// <param name="context">
        /// Serialization context to use
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <c>info</c> is <c>null</c>
        /// </exception>
        public GaussianFunction(SerializationInfo info, StreamingContext context)
        {
            Helper.ValidateNotNull(info, "info");
            this.sigma = info.GetDouble("sigma");
        }

        /// <summary>
        /// Populates the serialization info with the data needed to serialize the neighborhood function
        /// </summary>
        /// <param name="info">
        /// The serialization info to populate the data with
        /// </param>
        /// <param name="context">
        /// The serialization context to use
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <c>info</c> is <c>null</c>
        /// </exception>
        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            Helper.ValidateNotNull(info, "info");
            info.AddValue("sigma", sigma);
        }

        /// <summary>
        /// Determines the neighborhood of every neuron in the given Kohonen layer with respect to
        /// winner neuron using Gaussian function
        /// </summary>
        /// <param name="layer">
        /// The Kohonen Layer containing neurons
        /// </param>
        /// <param name="currentIteration">
        /// Current training iteration
        /// </param>
        /// <param name="trainingEpochs">
        /// Total number of training epochs
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If <c>layer</c> is <c>null</c>
        /// </exception>
        /// <exception cref="ArgumentException">
        /// If <c>trainingEpochs</c> is zero or negative
        /// </exception>
        /// <exception cref="ArgumentOutOfRangeException">
        /// If <c>currentIteration</c> is negative or, if it is not less than <c>trainingEpochs</c>
        /// </exception>
        public void EvaluateNeighborhood(KohonenLayer layer, int currentIteration, int trainingEpochs)
        {
            Helper.ValidateNotNull(layer, "layer");
            Helper.ValidatePositive(trainingEpochs, "trainingEpochs");
            Helper.ValidateWithinRange(currentIteration, 0, trainingEpochs - 1, "currentIteration");

            // Winner co-ordinates
            int winnerX = layer.Winner.Coordinate.X;
            int winnerY = layer.Winner.Coordinate.Y;

            // Layer width and height
            int layerWidth = layer.Size.Width;
            int layerHeight = layer.Size.Height;

            // Sigma value uniformly decreases to zero as training progresses
            double currentSigma = sigma - ((sigma * currentIteration) / trainingEpochs);

            // Optimization measure: Pre-calculated 2-Sigma-Square
            double twoSigmaSquare = 2 * currentSigma * currentSigma;
            
            // Evaluate and update neighborhood value of each neuron
            foreach (PositionNeuron neuron in layer.Neurons)
            {
                int dx = Math.Abs(winnerX - neuron.Coordinate.X);
                int dy = Math.Abs(winnerY - neuron.Coordinate.Y);

                if (layer.IsRowCircular)
                {
                    dx = Math.Min(dx, layerWidth - dx);
                }
                if (layer.IsColumnCircular)
                {
                    dy = Math.Min(dy, layerHeight - dy);
                }
                
                double dxSquare = dx * dx;
                double dySquare = dy * dy;
                if (layer.Topology == LatticeTopology.Hexagonal)
                {
                    if (dy % 2 == 1)
                    {
                        dxSquare += 0.25 + (((neuron.Coordinate.X > winnerX )== (winnerY % 2 ==0))? dx: -dx);
                    }
                    dySquare *= 0.75;
                }
                neuron.neighborhoodValue = Math.Exp(-(dxSquare + dySquare) / twoSigmaSquare);
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美综合另类在线卡通| 精品久久久久久最新网址| 99麻豆久久久国产精品免费 | 成人黄色网址在线观看| a美女胸又www黄视频久久| 在线观看区一区二| 日韩精品最新网址| 国产精品高清亚洲| 日韩黄色免费电影| 国产福利不卡视频| 91在线高清观看| 4438x亚洲最大成人网| 欧美国产日韩在线观看| 亚洲国产综合色| 高清免费成人av| 精品久久久三级丝袜| 亚洲va欧美va天堂v国产综合| 国产做a爰片久久毛片 | 国产精品久久久久久久久晋中 | 99久久久久久| 精品91自产拍在线观看一区| 成人免费一区二区三区在线观看| 日韩高清不卡一区二区三区| 91在线视频网址| 1000部国产精品成人观看| 日av在线不卡| 欧美日韩一区二区三区不卡| 一区免费观看视频| 成人黄色网址在线观看| 久久久久久免费| 久久精工是国产品牌吗| 日韩小视频在线观看专区| 亚洲第一搞黄网站| 欧美系列一区二区| 青椒成人免费视频| 日韩午夜电影av| 久久精品99国产国产精| 久久久久久久精| 成人开心网精品视频| 亚洲丝袜自拍清纯另类| 99麻豆久久久国产精品免费优播| 国产精品久久久久aaaa樱花| 成人午夜在线视频| 亚洲色图丝袜美腿| 91精品国产日韩91久久久久久| 日韩国产高清在线| 国产欧美日韩麻豆91| av不卡免费电影| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩一区二区三区四区五区| 亚洲v日本v欧美v久久精品| 国产精品久久午夜夜伦鲁鲁| 欧美三日本三级三级在线播放| 日本视频中文字幕一区二区三区| 精品久久久久久久久久久久包黑料| 成人免费va视频| 男男视频亚洲欧美| 国产精品国产三级国产三级人妇| 欧美日韩视频专区在线播放| 国产99久久久国产精品免费看| 一区二区三区日韩| 久久精品男人天堂av| 在线成人av影院| 99精品国产一区二区三区不卡 | 欧美精品在线视频| 色哟哟国产精品| heyzo一本久久综合| 蜜臀av性久久久久av蜜臀妖精| 亚洲狼人国产精品| 成人欧美一区二区三区| 久久久.com| 精品99久久久久久| 精品国产1区2区3区| 日韩欧美你懂的| 欧美日韩国产综合久久| 成人国产精品视频| 日本不卡不码高清免费观看| 日韩成人伦理电影在线观看| 亚洲午夜电影网| 亚洲成av人片www| 亚洲国产视频直播| 日韩精品五月天| 免费成人小视频| 国产盗摄视频一区二区三区| 国产一区二区三区免费看 | 欧美老年两性高潮| 欧美日韩成人综合天天影院| 9191精品国产综合久久久久久 | 日韩高清在线电影| 久久国产乱子精品免费女| 久久国产免费看| 91丨九色丨蝌蚪丨老版| 欧美色综合影院| 久久久一区二区| 亚洲福利电影网| 国产黄色成人av| 在线免费视频一区二区| 欧美大片在线观看一区二区| 久久精品水蜜桃av综合天堂| 亚洲自拍偷拍欧美| eeuss鲁一区二区三区| 欧美日韩成人综合在线一区二区| 欧美成人性战久久| 日本一区二区视频在线观看| 亚洲欧美一区二区三区孕妇| 伦理电影国产精品| 色偷偷88欧美精品久久久| 精品噜噜噜噜久久久久久久久试看| 国产欧美一区二区三区在线看蜜臀| 亚洲三级免费观看| 成人黄色综合网站| 欧美xxxxxxxx| 日本欧美一区二区三区乱码| 91国产福利在线| 欧美精品一二三区| 亚洲一区二区三区小说| 99精品久久只有精品| 国产婷婷色一区二区三区| 日韩电影在线观看一区| 欧美日韩国产片| 亚洲妇女屁股眼交7| 91久久久免费一区二区| 国产精品视频你懂的| 国产高清一区日本| 亚洲精品在线电影| 国产一区二区三区视频在线播放| 精品三级av在线| 久久精品99国产精品| 久久先锋影音av鲁色资源网| 日本不卡的三区四区五区| 欧美一级免费观看| 精品一区二区三区久久| 久久精品在线观看| 成人高清在线视频| 亚洲一区二区三区视频在线播放 | 国产精品二三区| 在线影视一区二区三区| 香蕉影视欧美成人| 欧美va亚洲va在线观看蝴蝶网| 国产精品一品视频| 亚洲人成精品久久久久| 欧美卡1卡2卡| 国产成人福利片| 亚洲国产视频网站| 精品国产伦一区二区三区观看方式 | 国产福利一区在线观看| 亚洲一区二区三区视频在线 | 国产乱一区二区| 五月综合激情网| 国产偷国产偷精品高清尤物| 欧美日韩专区在线| 粉嫩13p一区二区三区| 亚洲v日本v欧美v久久精品| 7777女厕盗摄久久久| 91视视频在线观看入口直接观看www | 国产伦精品一区二区三区视频青涩| 亚洲日本乱码在线观看| 久久久精品国产免费观看同学| 91福利在线看| 91在线一区二区三区| 成人免费毛片高清视频| 国产激情一区二区三区| 国内精品写真在线观看| 男人的天堂久久精品| 天天操天天干天天综合网| 18成人在线观看| 亚洲天天做日日做天天谢日日欢| 国产女同互慰高潮91漫画| 国产午夜三级一区二区三| 精品国产乱码久久久久久图片 | 97久久精品人人爽人人爽蜜臀| 国产98色在线|日韩| 粉嫩av一区二区三区| 97久久精品人人做人人爽| 92国产精品观看| 欧美人动与zoxxxx乱| 欧美一区二区三区视频在线观看| 3d动漫精品啪啪1区2区免费| 精品免费日韩av| 中文一区在线播放| 一区二区在线免费| 日本vs亚洲vs韩国一区三区| 国产成人午夜视频| 99久久伊人久久99| 91.com在线观看| 国产精品久久久久久久久图文区| **欧美大码日韩| 国产在线日韩欧美| 色哟哟国产精品| 精品日韩在线观看| 亚洲色图一区二区三区| 天堂一区二区在线| 成人av在线一区二区三区| 欧美日韩国产乱码电影| 欧美国产97人人爽人人喊| 欧美bbbbb| 色呦呦国产精品| 国产亲近乱来精品视频| 久久成人久久爱| 欧美日韩一区二区欧美激情|