테스트

aion-server 4.8

Gitteol
최고관리자 · 1 · 💬 0 클론/새로받기
 4.8 61f661d · 1 commits 새로받기(Pull)
game-server/src/com/aionemu/gameserver/custom/instance/neuralnetwork/PlayerModelLink.java
package com.aionemu.gameserver.custom.instance.neuralnetwork;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Jo
 */
public class PlayerModelLink {

	public List<Link> inputs;
	public List<Link> outputs;
	public double bias;
	public double biasDelta;
	public double gradient;
	public double value;

	public PlayerModelLink() {
		inputs = new ArrayList<Link>();
		outputs = new ArrayList<Link>();
		bias = PlayerModel.getRandom();
	}

	public PlayerModelLink(List<PlayerModelLink> inputList) {
		this();

		for (PlayerModelLink input : inputList) {
			Link l = new Link(input, this);
			input.outputs.add(l);
			inputs.add(l);
		}
	}

	public double calculateValue() {
		double sum = 0;
		for (Link l : inputs)
			sum += l.getWeight() * l.getInput().value;

		value = Sigmoid.output(sum + bias);
		return value;
	}

	public double calculateError(double target) {
		return target - value;
	}

	public double calculateGradient(Double target) {
		if (target == null) {
			double sum = 0;
			for (Link l : outputs)
				sum += l.getOutput().gradient * l.getWeight();
			gradient = sum * Sigmoid.derivative(value);
			return gradient;
		}

		gradient = calculateError(target.doubleValue()) * Sigmoid.derivative(value);
		return gradient;
	}

	public void updateWeights(double learnRate, double momentum) {
		double prevDelta = biasDelta;
		biasDelta = learnRate * gradient;
		bias += biasDelta + momentum * prevDelta;

		for (Link l : inputs) {
			prevDelta = l.getWeightDelta();
			l.setWeightDelta(learnRate * gradient * l.getInput().value);
			l.setWeight(l.getWeight() + l.getWeightDelta() + momentum * prevDelta);
		}
	}

}

📎 첨부파일

댓글 작성 권한이 없습니다.
🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 102,949
2 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 63,733
3 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,771
4 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 36,923
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 35,011
6 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 29,470
7 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 29,077
8 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
9 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 26,731
10 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 17,020
알림 0