Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
до лабораторної роботи №3
з дисципліни: «Теорія інтелектуальних систем»
на тему: «Дослідження методів та алгоритмів навчання з підкріпленням (Reinforcement Learning) в стаціонарному випадковому середовищі»
Львів 2017
Мета: Дослідити роботу методів та алгоритмів навчання з підкріпленням, набути навички їх реалізації.
Порядок виконання роботи
1. Реалізувати обраний згідно варіанту метод навчання з підкріпленням у вигляді програми.
2. Реалізувати модель взаємодії агента, що виконує метод навчання з підкріпленням, з стаціонарним випадковим середовищем (кількість доступних агенту дій обрати згідно варіанту). Модель оптимальної поведінки (цільова функція): середній виграш.
3. Реалізувати програму обчислювального експерименту по дослідженню моделі взаємодії агента, що виконує метод навчання з підкріпленням, з стаціонарним випадковим середовищем.
4. Провести обчислювальний експеримент. Отримати усереднені залежності значень цільової функції від часу для 1) випадкового агента та 2) агента, що виконує метод навчання з підкріпленням.
5. Порівняти отримані залежності та зробити висновки.
Варіант
greedy -> жадібний метод навчання з підкріпленням
N
Метод навчання з підкріпленням
Кількість доступних агенту дій
6
greedy
4
Текст програми обчислювального експерименту
void saveParameters (void)
{
int i,j;
if ((par_file = fopen(par_file_name,"w")) == NULL) {
fprintf(stderr, "Cannot open file <%s> for parameters of experiment.\n", par_file_name);
}
fprintf(par_file,"T = %d\n", T);
fprintf(par_file,"n = %d\n", n);
fprintf(par_file,"env = %d\n", env);
fprintf(par_file,"nA = %d\n", nA);
if (env) fprintf(par_file,"nS = %d\n", nS);
fprintf(par_file,"RL-agent type = %d\n", RLTYPE);
if (agt==3) fprintf(par_file,"epsilon = %f\n", e);
if (agt==4) fprintf(par_file,"tau = %f\n", tau);
fprintf(par_file,"====================\n");
switch (env)
{
case 0: // se (stationary environment)
for (i=0; i < nA; i++)
fprintf(par_file,"p(a%d) = %f\n", i, sePa[i]);
break;
case 1: // ce (commutative environment)
// probabilities of rewards
for (i=0; i < nS; i++)
{
for (j=0; j < nA; j++)
fprintf(par_file,"p(s%d,a%d) = %f\n", i, j, cePa[i][j]);
if (i < nS-1) fprintf(par_file,"--------------------\n");
}
fprintf(par_file,"\n====================\n");
// probabilities of state transition
for (i=0; i < nS; i++)
{
for (j=0; j < nS; j++)
fprintf(par_file,"p(s%d,s%d) = %f\n", i, j, cePs[i][j]);
fprintf(par_file,"--------------------\n");
}
break;
default: printf("lab3 error: wrong env model code specified\n");
}
fclose(par_file);
}
// ----------------------------------------------------------------------------
// save results of random agent
void saveResultsRA (void)
{
int i;
if ((RA_res_file = fopen(RA_res_file_name,"w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", RA_res_file_name);
for (i=0; i < T; i++)
fprintf(RA_res_file,"%f \t %f \n", avrRm[i], avrRv[i]);
fclose(RA_res_file);
}
// ----------------------------------------------------------------------------
// save results of perfect agent
void saveResultsPA (void)
{
int i;
if ((PA_res_file = fopen(PA_res_file_name,"w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", PA_res_file_name);
for (i=0; i < T; i++)
fprintf(PA_res_file, "%f \t %f \n", avrRm[i], avrRv[i]);
fclose(PA_res_file);
}
// ----------------------------------------------------------------------------
// save results of RL-agent
void saveResultsRL (void)
{
int i;
if ((RL_res_file = fopen(RL_res_file_name,"w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", RL_res_file_name);
for (i=0; i < T; i++)
fprintf(RL_res_file, "%f \t %f \n", avrRm[i], avrRv[i]);
fclose(RL_res_file);
}
Графічні залежності отриманих результатів
/
/
Результати обчислення ймовірностей:
p(a0) = 0.743950
p(a1) = 0.591449
p(a2) = 0.934019
p(a3) = 0.338603
Висновок: на цій лабораторній роботі було досліджено методи та алгоритми навчання з підкріпленням (Reinforcement Learning) в стаціонарному випадковому середовищі та набуто навички їх реалізації.