Отчет по СЕКРЕТНОЙ лабораторной работе #4 выполнил(а):
- Холстинин Егор Алексеевич
- РИ-220943 Отметка о выполнении заданий (заполняется студентом):
Задание | Выполнение | Баллы |
---|---|---|
Задание 1 | * | 60 |
Задание 2 | * | 20 |
Задание 3 | * | 20 |
знак "*" - задание выполнено; знак "#" - задание не выполнено;
Работу проверили:
- к.т.н., доцент Денисов Д.В.
- к.э.н., доцент Панов М.А.
- ст. преп., Фадеев В.О.
Структура отчета
- Данные о работе: название работы, фио, группа, выполненные задания.
- Цель работы.
- Задание 1.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Задание 2.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Задание 3.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Выводы.
- ✨Magic ✨
Познакомиться с работой перцептрона.
В проекте Unity реализовать перцептрон, который умеет производить вычисления OR, AND, NAND, XOR. Дать комментарии о корректности работы.
Ход работы:
- Создал пустой проект на юнити. Добавил в него скрипт с обучением перцептрона.
- Создал пустой обьект, повесил на него скрипт с перцептроном. Создал для него таблицу истиности.
- Пронаблюдал через консоль как он обучается настраивая веса.
- OR - находил нужные веса и обучался довольно быстро.
- AND - находил нужные веса и обучался спустя 6-7 итераций.
- NAND - находил нужные веса и обучался спустя 6-7 итераций.
- XOR - чем дольше обучался тем хуже становились веса и количество ошибок.
Построить графики зависимости количества эпох от ошибки обучения. Указать от чего зависит необходимое количество эпох обучения.
- Пронаблюдал количество ошибок в зависимости от эпохи. Занес эти данные в таблицу и построил графики.
- Необходимое количество эпох обучения зависит от того насколько тяжело подобрать подходящие веса удовлетворяющие таблице истиности.
(ссылка на таблицу: https://docs.google.com/spreadsheets/d/1rFPY4AlMudMtr-gOVJbo8KesVvOc9S9Vvu6Fz1WHl98/edit#gid=0)
- Визуальную модель перцептрона я решил построить следующим образом:
- Есть два кубика разного цвета символизирующие 1 и 0
- При соприкосновении кубик сверху уничтожается а нижний перекрашивается в результат по таблице истиности
- Таблицу истиности я наследую от таблицы передаваемой в перцептроны для обучения
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
public class PerceptronSimulation : MonoBehaviour
{
// Start is called before the first frame update
public Renderer Renderer;
public Material[] Materials;
public Perceptron SimulatedPerceptron;
private Dictionary<int, int> boolLogic = new();
void Start()
{
Renderer = GetComponent<Renderer>();
foreach (var logic in SimulatedPerceptron.ts)
{
boolLogic.TryAdd((int)logic.input.Sum(), (int)logic.output);
}
}
private void OnCollisionEnter(Collision other)
{
if (!other.gameObject.CompareTag("BoolCube"))
{
return;
}
var output = boolLogic[ConvertColorToInt(Renderer.material.name) +
ConvertColorToInt(other.gameObject.GetComponent<Renderer>().material.name)];
Renderer.material = Materials[output];
Destroy(other.gameObject);
}
private static int ConvertColorToInt(string color)
{
return color.Contains("White") ? 1 : 0;
}
// Update is called once per frame
void Update()
{
}
}
- Работа визуальной модели на примере OR
- До соприкосновения:
- После соприкосновения:
В ходе данной лабораторной работы я познакомился с понятием перцептрона. Пронаблюдал то, каким образом его можно обучить. И создал свою визуальную модель его работы.
Plugin | README |
---|---|
Dropbox | [plugins/dropbox/README.md][PlDb] |
GitHub | [plugins/github/README.md][PlGh] |
Google Drive | [plugins/googledrive/README.md][PlGd] |
OneDrive | [plugins/onedrive/README.md][PlOd] |
Medium | [plugins/medium/README.md][PlMe] |
Google Analytics | [plugins/googleanalytics/README.md][PlGa] |
BigDigital Team: Denisov | Fadeev | Panov