dataesr/scientific-paragraphs-categorization huggingface dataset:
Implementation and Experimentation The Torch7 platform was used to implement the CNN model for this work. The reason for selecting Torch7 is because it provides the maximum possible flexibility and speed in building the scientific algorithms including the different machine learning techniques  [40]. Crepe is the name of the code that was implemented using Torch7 for text classification from the character-level dataset using CNNs  [41] , and it has been used to produce the results in  [20]. Crepe contains the following components: 1. Data preprocessing scripts that can be used to convert csv format to a Torch 7 binary format (t7b) that can be used by the training program directly: This component contains a tool called csv2t7b. lua; it is used to convert the datasets of csv format to t7b format, which can be fed to Crepe's training component.
2. The training program is a code used to process the data representing the DNA sequences: Originally, this code processed text and classified it into different classes representing the topic to which the text belongs; however, for the DNA taxonomic classification, we modified it to process DNA sequences. The reason for pursuing a nearly similar approach for processing both text and DNA data is that the two types of data are highly similar. The training subsets are fed first to the training component program in Crepe to train the classifier. Then, the model accuracy is evaluated on the remaining subsets, which were spared for testing. Table  A3  shows the different training programs in Crepe. The data used in this project were obtained from the Barcode of Life Data Systems (BOLD) Web Services, which provides the ability to download specimen, sequence, and trace data from the Public Data Portal  [42].
2. Test subset: including approximately 21. 28% of the original dataset (11. 45% was used for cross-validation and 9. 83% for testing). The two subsets were transformed from csv format to t7b format using the Crepe data processing script described above. In the total dataset formed, 31,068 DNA sequences were available; each sequence has its corresponding class label provided by the BOLD website. In the training subset, we had 24,455 samples, while we had 6613 samples in the test subset (3558 samples for cross-validation and 3055 samples for testing). The samples in each data division were randomly selected from the main dataset, which contained the 31,068 DNA sequences. Two types of experiments were performed after preparing the different data subsets as explained earlier.
• Experiment 2: Encoding the DNA sequences by creating unique labels. Each unique label represents three characters in the original DNA sequence. A dictionary was generated to guide encoding the DNA sequences. The purpose of this encoding process is to ensure having a dataset similar in complexity and variety to the one used in the text classification problem. Applying encoding is expected to help the CNN model perform better as more differences are introduced between the various DNA sequences in the dataset. Figure  4  below shows the beginning of a randomly-selected sample from an encoded DNA sequence that belongs to the "Valvatida" class. More details about the "3-1" encoding used in this project are available in the Supplementary Materials.
Results and Discussion In Experiment 1, our CNN model did not learn well; thus, the accuracy obtained on the test subsets was very low (around 40%). The reason for this poor performance is that the model was originally designed for the text classification problem, so the input was expected to be a set of characters that includes letters, number, and special characters. As for our dataset on which we ran our CNN model, each sample had only {'A', 'C', 'G', 'T', '-'} characters, so the CNN model did not find many differences between the different DNA samples belonging to different classes. This led to many misclassifications, causing a very poor performance. In Experiment 2, the "3-1" encoding was performed on our dataset. Then, we trained the CNN model on the new encoded training subset and validated and tested it on the encoded test subset.
Conclusions To the best of our knowledge, this study is the first one utilizing the CNN model designed for text classification for taxonomic classification of living organisms. The DNA sequences were first encoded, then fed to the modified CNNs for training, then testing. The results obtained show a high potential in pursuing this approach to solve more complicated problems like classification of DNA sequences to deeper levels in taxonomy hierarchy. Performing more experiments while following a similar procedure to the one presented in this work, increasing the number of samples and classes in the dataset and changing the taxonomy level up/down surely will further help with obtaining a more comprehensive conclusion about the efficiency of the approach in tackling more complicated genomic analysis problems.
1. Data preprocessing scripts that can be used to convert csv format to a Torch 7 binary format (t7b) that can be used by the training program directly: This component contains a tool called csv2t7b. lua; it is used to convert the datasets of csv format to t7b format, which can be fed to Crepe's training component. This data preprocessing component contains two command-line parameters as shown in Table A1 in the Appendix A. The dataset t7b format can be loaded using the regular torch calls. The variable train has three members as shown in Table A2 in the Appendix A. 2. The training program is a code used to process the data representing the DNA sequences:.
Acknowledgments: This paper is an extended work to a semester project for the  Machine Learning course at Istanbul Sehir University. The authors thank  Professor Ali Cakmak  and  Professor Mehmet Serkan Apaydin  for their guidance and support. In addition, the authors thank  Mohamedi Vetel  and  Gihad N. Sohsah  for their help in programming. Furthermore, correspondence author thanks a lot F. Ö. for the help in editing and writing parts of the paper. Finally, the authors thank  Tajwar Aleef ,  Vu Minh  and  Yeman Hagos  for the discussion regarding amending the paper.
Execution Like in the last two years, SYNTCOMP 2017 was run at Saarland University, on a set of identical machines with a single quad-core Intel Xeon processor (E3-1271 v3, 3. 6GHz) and 32 GB RAM (PC1600, ECC), running a GNU/Linux system. Each node has a local 480 GB SSD that can be used as temporary storage. Also like in previous years, the competition was organized on the EDACC platform  [3] , with a very similar setup. To ensure a high comparability and reproducability of our results, a complete machine was reserved for each job, i. e. , one synthesis tool (configuration) running one benchmark. Olivier Roussel's runsolver  [37]  was used to run each job and to measure CPU time and wall time, as well as enforcing timeouts. As all nodes are identical and no other tasks were run in parallel, no other limits than a timeout of 3600 seconds (CPU time in sequential mode, wall time in parallel mode) per benchmark was set.
Implementation, Availability The source code of AbsSynthe is is available at https://github. com/gaperez64/AbsSynthe/tree/native-dev-par. Re-entered: Demiurge 1. 2. 0 Demiurge was submitted by R. Könighofer and M. Seidl, and competed in both the realizability and the synthesis track. Demiurge implements different SAT-based methods for solving the reactive synthesis problem  [4, 39]. In the competition, three of these methods are used -one of them as the only method in sequential configuration (D1real) , and a combination of all three methods in parallel configuration (P3real). This year, Demiurge competed in the same version as last two years.
Re-entered: TermiteSAT TermiteSAT was submitted by A. Legg, N. Narodytska and L. Ryzhyk, and competed in the realizability track. TermiteSAT implements a novel SAT-based method for synthesis of safety specifications based on Craig interpolation. The only configuration in sequential mode implements this new approach, and the parallel configurations (portfolio) and (hybrid) run the new algorithm alongside one of the algorithms of Simple BDD Solver  [32] , where in (hybrid) there is even communication of intermediate results between the different algorithms. Implementation, Availability The source code of TermiteSAT is available online at: https://githu b. com/alexlegg/TermiteSAT.
In sequential mode, these configurations spawn multiple threads that are executed on a single CPU core. The parallel configurations are essentially identical, except that the threads are distributed to multiple cores. Implementation, Availability BoWSer is implemented in Haskell, and uses LTL3BA 6   [2]  to convert specifications into automata, and MapleSAT 7   [33]  to solve SAT queries. For circuit generation, it uses the Yosis framework 8   [19]. The website of BoWSer is https://www. react. uni-saarland. de/tools/ bowser/, where the source code will be made available soon. New Entrant: ltlsynt ltlsynt was submitted by M. Colange and T. Michaud and competed in a single configuration in both the sequential realizability and sequential synthesis tracks. To solve the synthesis problem, ltlsynt uses a translation to parity games.
ltlsynt also uses BDDs to cache the expressions represented by AIGER vari-SYNTCOMP 2017 ables to avoid adding redundant gates. In contrast to its competitors, ltlsynt does not use external tools such as ABC or Yosis for the encoding of solutions into AIGER. Implementation, Availability ltlsynt is implemented in C++ and integrated into a branch of the Spot automata library  [12] , which is used for translation of the specification into automata, and for manipulation of automata. Spot also integrates the BDD library BuDDy and the SAT solver PicoSAT. The source code of ltlsynt is available in branch tm/ltlsynt-pg of the GIT repository of Spot at https://gitlab. lrde. epita. fr/spot/spot. git.
Updated Tool: Acacia4Aiger Acacia4Aiger was submitted by R. Brenguier, G. A. Pérez, J. -F. Raskin, and O. Sankur. It is an extension of the reactive synthesis tool Acacia+  9  , which solves the reactive synthesis problem for LTL specifications by a reduction to safety games, which are then solved efficiently by symbolic algorithms based on an antichain representation of the sets of states  [5]. For SYNTCOMP 2017, Acacia+ has been extended with a parallel mode that searches independently for a system implementation and a counter-strategy for the environment. Implementation, Availability Acacia4Aiger is implemented in Python and C. It uses the AaPAL library  10  for the manipulation of antichains, and the Speculoos tools  11  to generate AIGER circuits. The source code of Acacia4Aiger is available online at: https://github.
This solution is then converted into AIGER format, and further simplified using the ABC framework. Two configurations of BoSy competed in SYNTCOMP 2017, differing in the translation from LTL to automata: configuration (spot) uses the Spot framework  [12] , configuration (ltl3ba) uses LTL3BA  [2]  for this task. Both configurations support a parallel mode, if more than one core is available. BoSy supports both Mealy and Moore semantics natively, as well as the extraction of a winning strategy for the environment in case of unrealizable specifications. Implementation, Availability. BoSy is written in Swift. It uses LTL3BA or Spot  13  to convert LTL specifications into Büchi automata. It uses bloqqer, RAReQS  14  and QuAbs  15  to solve QBF constraints, and ABC to simplify solutions. The code is available online at: https://www.
The results are given in Table  3. Compared to sequential mode, a number of additional instances could be solved: both AbsSynthe and 16 Z3 is available at https://github. com/Z3Prover/z3. Accessed August 2017. TermiteSAT have one or more configurations that solve more then the best tool in sequential mode (about 79% of the benchmark set). Only 15 instances could not be solved by any tool in either sequential or parallel mode. Note that in Table  3  we only count a benchmark instance as uniquely solved if it is not solved by any other configuration, including the sequential configurations. Consequently, only Demiurge (P3real) produces a single unique solution. Both modes: Solved Instances by Category. Figure  3  gives an overview of the number of solved instances per configuration and category, for the best sequential and parallel configuration of each tool and the categories defined in Table  1.
Acknowledgments. The organization of SYNTCOMP 2016 was supported by the  Austrian Science Fund (FWF)  through project  RiSE  ( S11406-N23 ) and by the  German Research Foundation (DFG)  through project " Automatic Synthesis of Distributed and Parameterized Systems " ( JA 2357/2-1 ), and its setup and execution by the  European Research Council (ERC)  Grant  OSARES  (No. 683300 ). The development of AbsSynthe and Acacia4Aiger was supported by an  F. R. S. -FNRS  and FWA fellowships, and the  ERC inVEST  ( 279499 ) project. The development of SafetySynth and BoSy was supported by the  ERC Grant OSARES  (No. 683300 ).
The experimental data was obtained at a room temperature of 25 • C. Energies 2017, 10, 1075 4 of 18 current pulses. The battery cell was discharged with a pulse current of 0. 8 A (0. 37 C) from full charge (SOC = 100%) to cut-off voltage (SOC = 0%)  [22]. C-rate is the discharge rate of the battery relative to its capacity. This current pulse has 480 s on-time and 600 s off-time. Figure  3  shows the pulse discharge current and the battery terminal voltage. The experimental data was obtained at a room temperature of 25 °C. It is important to include the variation of as a function of SOC in the whole battery model. The experimental value is interpolated by a fitting technique (using software FindGraph). The resulting fitting function is given by: SOC) exp( ) SOC exp( = (SOC) ⋅ ⋅ + ⋅ ⋅ v v v v OC c d b a V (6) Table  1  represents the relative fitting errors for battery parameters.
It was considered that each pulse current discharged the battery by 10%. The open-circuit voltage V oc was measured at equilibrium potential. The points in Figure  4  show the V oc versus SOC. The relation between the V oc and the SOC is non-linear. The curve is steep at the beginning (for SOC lower than 20%) and then linear  [26] [27] [28]. Energies 2017, 10, 1075 4 of 18 current pulses. The battery cell was discharged with a pulse current of 0. 8 A (0. 37 C) from full charge (SOC = 100%) to cut-off voltage (SOC = 0%)  [22]. C-rate is the discharge rate of the battery relative to its capacity. This current pulse has 480 s on-time and 600 s off-time. Figure  3  shows the pulse discharge current and the battery terminal voltage. The experimental data was obtained at a room temperature of 25 °C.
It is important to include the variation of as a function of SOC in the whole battery model. The experimental value is interpolated by a fitting technique (using software FindGraph). The resulting fitting function is given by: SOC) exp( ) SOC exp( = (SOC) ⋅ ⋅ + ⋅ ⋅ v v v v OC c d b a V (6) Table  1  represents the relative fitting errors for battery parameters. It is important to include the variation of V oc as a function of SOC in the whole battery model. The experimental value is interpolated by a fitting technique (using software FindGraph). The resulting fitting function is given by: V OC (SOC) = a v • exp(b v • SOC) + d v • exp(c v • SOC) (6).
• Pulse discharge current of 0. 8 A (presented in Figure  3 ): Figure  9a  shows the comparison between the simulation and the experimental voltages. Figure  9b  illustrates the small size of the simulation error, hardly reaching 0. 06 V and remaining at less than 1% virtually throughout the test. • Pulse discharge current of 1. 5 A (0. 7 C) (480 s on-time and 600 s off-time): The comparison between the simulation and the experimental voltages is represented in Figure  11a. It can be observed in Figure  11b  that the error rate, while still low, is slightly higher at this higher pulse discharge current, especially as the battery reaches full discharge. MATLAB/SIMULINK environment. To compare the experimental and simulated results, several tests were carried out using pulse discharge currents.
The covariance matrix q was computed through manual testing in MATLAB. The two Equations (18a) and (18b) are solved simultaneously with the nonlinear ODE solver  [38]. Equation (18b) is vectorised. Here, we implanted the filter (CD-EKF) in MATLAB with ODE45 Dormand-Prince variable-step differential equation solver because it implements the Runge-Kutta pair, one of the best methods for treating non-stiff general-form initial value problems for ODE. The integration is done in the interval [t n-1 , t n ] with the initial conditions: x(t n-1 ) = xn-1/n-1 and the error covariance matrix P(t n-1 ) = P n-1/n-1. We compute the predicted estimate state xn/n-1 = x(t n ) and the error covariance matrix P n/n-1 = P(t n ) at time t n  [37]. Then, we use the standard correction step of the EKF. Additionally, we calculate only the upper triangular part of the error covariance matrix including the main diagonal because of its symmetry.
Conclusions In this paper, we propose an extended model to simplify the characterisation of battery parameters (state of charge, resistances and capacitances). This lithium-ion battery model relies on iterative measures of voltage and current as well as estimations from a continuous-discrete extended Kalman filter. We employed the pulse discharge method and fitting technique to determine battery parameters and to validate the model experimentally. The model, established in the MATLAB environment, takes into account the effect of the discharge rate on battery parameters, and simulates the dynamic voltage behaviours of the battery well. It satisfies a trade-off between complexity and precision. However, at the end of discharge, the model becomes less precise because of increasing superposed errors and electrochemical phenomena that may take place at low voltage.
The Markov chain transition writes: (i) I ∼ πθ (• | X1:C , Y) (ii) X j ∼ κ θ,j , for j = I (iii) X I ∼ P r θ ( XI ; • | X -I , I , Y) and the transition kernel KCC may thus be expressed as: KCC (I , d X 1:C | I, X1:C ) = πθ (I | X1:C , Y)P θ ( XI ; d X I | X -I , I , Y) j =I κ θ,j (d X j ). (23) The Markov chain {I[k], X1 [k],. , XC [k]} k>0 , simulated through a Metropolis-within-Gibbs algorithm, provides samples from πθ ( • | Y). However, only the marginal samples {I  (20) , are of interest and will be used in the approximation of the E-step of the MCoEM algorithm  (17). Pseudo-code of the Markov chain simulation algorithm is reported in Algorithm 2. [k], X[k] = XI[k] } k>0 , distributed under π θ ( • | Y).
Since X is only used in the pseudo-prior specification, the precision of the optimizer does not matter much and simple heuristics can be used (see related discussion in Section 5). Remark 2. Our proposed kernel shares some similarities with that proposed in  [1] , which also makes use of auxiliary variable { X1 ,. j=1. These approximate weights allow to sample I and then parameter samples {X[k]} k>0 are drawn using a Markov chain targeting π θ ( • | I, Y). This scheme is computationally intensive all the more that [1] uses a batch learning setup which implies that at each iteration, as many latent variables {I n [k], X n [k]} k>0 as there are observations in the dataset need to be sampled.
Handwritten digits template extraction The algorithm is then applied to a collection of handwritten digits, the US postal database, featuring N = 1, 000 samples for each handwritten digit from 0 to 9, each of which consists of a 16 × 16 pixel image. The USPS digits data were gathered at the Center of Excellence in Document Analysis and Recognition (CEDAR) at SUNY Buffalo, as part of a project sponsored by the US Postal Service; see  [32]. The main difficulty with these data stems from the geometric dispersion within each class of digit. Two sources of variability are considered: (i) The first type is assumed meaningful, since intrinsically related to the class of digit, and MCoEM seeks to learn them: the templates. A digit may indeed need more than Y f α1 u → λ 1 [k]f • D(u, β 1 [k]) 2 Y f α2 u → λ 2 [k]f α2 • D(u, β 2 [k]) [k], β 1 [k], λ 2 [k], β 2 [k], I[k]} for some k ∈ {101.
Deformable template model An observation Y n is a 16 × 16 matrix, regarded as a |Ω| = 256 dimensional vector, whose coordinates correspond to the photometry of a fixed set of pixels, (u 1 ,. , u |Ω| ), such that for all s ∈ {1,. , |Ω|}, u s ∈ (-1, 1) × (-1, 1). The raw database consists of noise-free observations, such that for all s ∈ {1,. , |Ω|}, Y n,s ∈ (0, 1). To make the problem more challenging, an additive Gaussian noise W s = σ , where σ = 0. 2 and ∼ N (0, 1), is added to each pixel Y n,s (see Figure  6 (a) ). A template f is a function defined on U = R 2. The dictionary of functions {φ } m =1 is set as Gaussian kernels with m = 256. The landmark points {r } m =1 are regularly spaced in the square (-1, 1) × (-1, 1) and the kernel φ is defined as u → φ (u) = exp (ν -2 (u -r ) 2 ) with ν = 0.
2. Contrary to the growth velocity curve case, where growth profiles feature different scales, the scale dispersion in the measurement space is limited in this database. As a consequence, using a scaling factor λ n is not relevant. To each image Y n is associated a class I n ∈ {1,. , C} and a deformation parameter β n , such that a template can be geometrically deformed under the action of a function u → D(u, β n ). We consider two complementary types of deformation: • A rigid deformation u → T (u, υ n ) where υ n parameterizes rotations, homotheties and translations. Indeed, the templates need to be allowed to rotate and to be translated in space, in order to match the observations and in particular those which are partially censored by the observation window. Homotheties allow to zoom in or to zoom out the templates.
Parameter estimation We consider two learning setups: 1. Partially-supervised: the templates are learnt for each digit separately with C 1 = 4 classes through N 1 = 1, 000 iterations of the MCoEM. Thus, 10 independent models are learnt and the resulting templates are reported in Figure  6 -(b). We refer to this approach as partially-supervised since MCoEM deals with images of the same digit (labeled) but assigns each observation to one of the four classes describing this type of digit in an unsupervised fashion. 2. Fully-unsupervised: the templates are learnt from the dataset containing all the 10 digits (unlabelled), with C 2 = 20 classes and N 2 = 5, 000. Thus, only one model is learnt and the resulting templates are illustrated with Figure  6-(c ). The templates obtained in the two settings are similar, even though in Figure  6-(c ), the algorithm makes use of a class for digits that can hardly be classified in one of the existing mixture component (template in the bottom right corner).
Initialisation of the template parameters can potentially lead to degeneracy if one or more classes are initialised with pathologic parameters. This issue was not encountered in the partially-supervised setup probably because the class sampling is easier, the data being all observations of the same digit. The initial template parameters were thus set randomly. In the fully-unsupervised scheme however, the template parameters were set as the clusters centroid returned by a k-means clustering algorithm (using the Matlab built-in routine) applied to 50 images of the dataset drawn at random. More precisely for all j ∈ {1,. , C}, α0,j = (Φ T O d β Φ O d β ) -1 Φ T O d β c j , where Φ β is defined in Eq. (  3 ) and c j is k-means cluster j centroid. Figure  7  shows the parameters estimate { θn } 1000 n=1 throughout the MCoEM algorithm for the digit two learnt separately with C = 4 classes (partially-supervised).