Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Dev_Dev
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 72
#1

Моделирование нейронной сети

23.11.2014, 18:03. Просмотров 1193. Ответов 0
Метки нет (Все метки)

Здравствуйте, получилось накодить 2 класса: класс нейрона и класс слоя:
класс нейрона:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//Neuron.h
@interface Neuron : NSObject
 
@property (retain) NSArray *weights;
 
+(id)CreateWeightArrayNeuron:(NSUInteger)countInput;
-(NSNumber*)CalculateOutputNeuron:(NSArray*)input;
 
@end
 
 
//Neuron.m
@implementation Neuron
 
 
-(id)initWeightMatrixRandom:(NSUInteger)count
{
    if(self=[self init])
    {
        CGFloat max = 1;
        CGFloat min = -1;
        
        NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:count];
        for(int i = 0 ; i < count; i++)
        {
            [array addObject:@(((float)arc4random()/RAND_MAX)*(max-min)+min)];
            
        }
        self.weights = array;
    }
    return  self;
}
+(id)CreateWeightArrayNeuron:(NSUInteger)countInput
{
    return [[self alloc] initWeightMatrixRandom:countInput];
}
 
 
 
-(NSNumber*)activationFunc:(CGFloat)arrayResult
{
    return @(tanh(arrayResult));
}
 
-(NSNumber*)CalculateOutputNeuron:(NSArray *)input
{
    __block CGFloat result = 0;
    
    [self.weights enumerateObjectsUsingBlock:^(NSNumber *weight, NSUInteger idx, BOOL *stop) {
        if (idx == input.count) {
            *stop = YES;
            return;
        }
        result += [weight floatValue] * [input[idx] floatValue];
    }];
    
    return [self activationFunc:result];
   
}
 
 
@end
Все отлично работает, дальше создаю класс слоя:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//NeuralLayer.h
@interface NeuronLayer : NSObject
 
@property (retain) NSArray *neurons;
 
+(id)neuronLayerWithNumberNeurons:(NSUInteger)numberOfNeurons
          numberOfInputsPerNeuron:(NSUInteger)numberOfInputs;
-(NSArray*)calculateOutOfInputs:(NSArray*)inputs;
@end
 
//NeuralLayer.m
#import "NeuronLayer.h"
#import "Neuron.h"
 
@implementation NeuronLayer
 
-(id)initWithNeurons:(NSUInteger)numberOfNeurons :(NSUInteger)numberOfInputs
{
     if(self=[self init]) {
         NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:numberOfNeurons];
         for (int i = 0; i < numberOfNeurons; i++) {
             [array addObject:[Neuron CreateWeightArrayNeuron:numberOfInputs]];
         }
         self.neurons = array;
    }
    return self;
}
 
+(id)neuronLayerWithNumberNeurons:(NSUInteger)numberOfNeurons numberOfInputsPerNeuron:(NSUInteger)numberOfInputs
{
    return [[self alloc] initWithNeurons:numberOfNeurons :numberOfInputs];
}
 
-(NSArray*)calculateOutOfInputs:(NSArray *)inputs
{
    NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:self.neurons.count];
for (Neuron *neuron in self.neurons)
    {
        [array addObject:[neuron CalculateOutputNeuron:inputs]];
    }
    
    return array;
    
    
}
 
@end
Но теперь самое страшное, как бы создать класс сети? Можно на примере однослойной и прямого распространения? Спасибо огромное !!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 18:03
Ответы с готовыми решениями:

Нейронные сети и их моделирование
Здравствуйте, хочу задать логический вопрос на тему моделирование нейронной...

Обучение нейронной сети
Здравствуйте. Помогите, пожалуйста. Задание в приложении. Написал код: T =...

Реализация нейронной сети
Добрый день. Возможно ли смоделировать такую нейросеть, которая могла бы...

Создание нейронной сети
Добрый день) кто может помочь создать нейронную сеть по этой задаче? X1 ...

обучение нейронной сети
struct SAcson { int l,c; // строка, столбец float x; // заряд }; struct...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2014, 18:03

Обучение нейронной сети
Столкнулся с проблемой обучения нейронной сети, пытаюсь &quot;научить&quot; сеть функции...

Изучение нейронной сети
Здравствуйте уважаемые форумчане! Хочу познакомиться с нейронной сетью. Пока...

Разработка нейронной сети на С++
Дайте книгу о нейронных сетях, где все понятно описано. Я бы хотел написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru