Swift-AI | The Swift machine | Machine Learning library

 by   Swift-AI Swift Version: 2.0.0 License: MIT

kandi X-RAY | Swift-AI Summary

kandi X-RAY | Swift-AI Summary

Swift-AI is a Swift library typically used in Artificial Intelligence, Machine Learning, Deep Learning applications. Swift-AI has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Swift AI is a high-performance deep learning library written entirely in Swift. We currently offer support for all Apple platforms, with Linux support coming soon.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              Swift-AI has a medium active ecosystem.
              It has 5952 star(s) with 561 fork(s). There are 347 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 10 open issues and 39 have been closed. On average issues are closed in 63 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of Swift-AI is 2.0.0

            kandi-Quality Quality

              Swift-AI has no bugs reported.

            kandi-Security Security

              Swift-AI has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              Swift-AI is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              Swift-AI releases are available to install and integrate.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Swift-AI
            Get all kandi verified functions for this library.

            Swift-AI Key Features

            No Key Features are available at this moment for Swift-AI.

            Swift-AI Examples and Code Snippets

            No Code Snippets are available at this moment for Swift-AI.

            Community Discussions

            QUESTION

            How can a Neural Network learn from testing outputs against external conditions which it can not directly control
            Asked 2019-May-07 at 05:22

            In order to simplify the question and hopefully the answer I will provide a somewhat simplified version of what I am trying to do.

            Setting up fixed conditions:

            • Max Oxygen volume permitted in room = 100,000 units
            • Target Oxygen volume to maintain in room = 100,000 units
            • Maximum Air processing cycles per sec == 3.0 cycles per second (min is 0.3)
            • Energy (watts) used per second is this formula : (100w * cycles_per_second)SQUARED
            • Maximum Oxygen Added to Air per "cycle" = 100 units (minimum 0 units)
            • 1 person consumes 10 units of O2 per second
            • Max occupancy of room is 100 person (1 person is min)
            • inputs are processed every cycle and outputs can be changed each cycle - however if an output is fed back in as an input it could only affect the next cycle.

            Lets say I have these inputs:

            • A. current oxygen in room (range: 0 to 1000 units for simplicity - could be normalized)
            • B. current occupancy in room (0 to 100 people at max capacity) OR/AND could be changed to total O2 used by all people in room per second (0 to 1000 units per second)
            • C. current cycles per second of air processing (0.3 to 3.0 cycles per second)
            • D. Current energy used (which is the above current cycles per second * 100 and then squared)
            • E. Current Oxygen added to air per cycle (0 to 100 units)

            (possible outputs fed back in as inputs?):

            • F. previous change to cycles per second (+ or - 0.0 to 0.1 cycles per second)
            • G. previous cycles O2 units added per cycle (from 0 to 100 units per cycle)
            • H. previous change to current occupancy maximum (0 to 100 persons)

            Here are the actions (outputs) my program can take:

            1. Change cycles per second by increment/decrement of (0.0 to 0.1 cycles per second)
            2. Change O2 units added per cycle (from 0 to 100 units per cycle)
            3. Change current occupancy maximum (0 to 100 persons) - (basically allowing for forced occupancy reduction and then allowing it to normalize back to maximum)

            The GOALS of the program are to maintain a homeostasis of :

            • as close to 100,000 units of O2 in room
            • do not allow room to drop to 0 units of O2 ever.
            • allows for current occupancy of up to 100 people per room for as long as possible without forcibly removing people (as O2 in room is depleted over time and nears 0 units people should be removed from room down to minimum and then allow maximum to recover back up to 100 as more and more 02 is added back to room)
            • and ideally use the minimum energy (watts) needed to maintain above two conditions. For instance if the room was down to 90,000 units of O2 and there are currently 10 people in the room (using 100 units per second of 02), then instead of running at 3.0 cycles per second (90 kw) and 100 units per second to replenish 300 units per second total (a surplus of 200 units over the 100 being consumed) over 50 seconds to replenish the deficit of 10,000 units for a total of 4500 kw used. - it would be more ideal to run at say 2.0 cycle per second (40 kw) which would produce 200 units per second (a surplus of 100 units over consumed units) for 100 seconds to replenish the deficit of 10,000 units and use a total of 4000 kw used.

            NOTE: occupancy may fluctuate from second to second based on external factors that can not be controlled (lets say people are coming and going into the room at liberty). The only control the system has is to forcibly remove people from the room and/or prevent new people from coming into the room by changing the max capacity permitted at that next cycle in time (lets just say the system could do this). We don't want the system to impose a permanent reduction in capacity just because it can only support outputting enough O2 per second for 30 people running at full power. We have a large volume of available O2 and it would take a while before that was depleted to dangerous levels and would require the system to forcibly reduce capacity.

            My question:

            Can someone explain to me how I might configure this neural network so it can learn from each action (Cycle) it takes by monitoring for the desired results. My challenge here is that most articles I find on the topic assume that you know the correct output answer (ie: I know A, B, C, D, E inputs all are a specific value then Output 1 should be to increase by 0.1 cycles per second).

            But what I want is to meet the conditions I laid out in the GOALS above. So each time the program does a cycle and lets say it decides to try increasing the cycles per second and the result is that available O2 is either declining by a lower amount than it was the previous cycle or it is now increasing back towards 100,000, then that output could be considered more correct than reducing cycles per second or maintaining current cycles per second. I am simplifying here since there are multiple variables that would create the "ideal" outcome - but I think I made the point of what I am after.

            Code:

            For this test exercise I am using a Swift library called Swift-AI (specifically the NeuralNet module of it : https://github.com/Swift-AI/NeuralNet

            So if you want to tailor you response in relation to that library it would be helpful but not required. I am more just looking for the logic of how to setup the network and then configure it to do initial and iterative re-training of itself based on those conditions I listed above. I would assume at some point after enough cycles and different conditions it would have the appropriate weightings setup to handle any future condition and re-training would become less and less impactful.

            ...

            ANSWER

            Answered 2019-May-07 at 05:22

            This is a control problem, not a prediction problem, so you cannot just use a supervised learning algorithm. (As you noticed, you have no target values for learning directly via backpropagation.) You can still use a neural network (if you really insist). Have a look at reinforcement learning. But if you already know what happens to the oxygen level when you take an action like forcing people out, why would you learn such a simple facts by millions of evaluations with trial and error, instead of encoding it into a model?

            I suggest to look at model predictive control. If nothing else, you should study how the problem is framed there. Or maybe even just plain old PID control. It seems really easy to make a good dynamical model of this process with few state variables.

            You may have a few unknown parameters in that model that you need to learn "online". But a simple PID controller can already tolerate and compensate some amount of uncertainty. And it is much easier to fine-tune a few parameters than to learn the general cause-effect structure from scratch. It can be done, but it involves trying all possible actions. For all your algorithm knows, the best action might be to reduce the number of oxygen consumers to zero permanently by killing them, and then get a huge reward for maintaining the oxygen level with little energy. When the algorithm knows nothing about the problem, it will have to try everything out to discover the effect.

            Source https://stackoverflow.com/questions/56013972

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install Swift-AI

            You can download it from GitHub.

            Support

            Contributions to the project are welcome. We simply ask that you strive to maintain consistency with the structure and formatting of existing code.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/Swift-AI/Swift-AI.git

          • CLI

            gh repo clone Swift-AI/Swift-AI

          • sshUrl

            git@github.com:Swift-AI/Swift-AI.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link